Component Selection For Standalone Keypad-driven value finder

Hello,
I'm brand new to arduino and any sort of microprocessor work. I'm quite familiar with programming and electrical work so need no help on that front, but have been tasked with creating a simple product and am overwhelmed by the amount of possible components.

Goal:
To be able to enter a 2 digit number onto a keypad and have an LCD display 1-3 corresponding text strings for the given value. Idealy, the possible values and corresponding text strings could be typed up on a computer by the end user and uploaded to the device, but I suspect this be a programming hurdle later on.

Requirements:

  • As cheap as possible, or close to it if something is worth the upgrade.
  • As small as possible. It's for an attachment to a handheld device.
  • Battery powered. Preferably rechargeable, however disposable batteries could be viable.
  • LCD screen capable of 3-4 lines of text (3 would be perfect)
  • Matrix keypad (trying to avoid touchscreen for durability reasons)
  • USB port for computer connection
  • Preferably, the ability to store a small value-string list (Less than 100 pairs) to memory, As I'd rather not have this hard-coded.

Closing
With all that said, What list of components do I need to buy to get started with this project, and any general advice would be welcomed.
The biggest head-spins I have is which arduino, does it have the ability to store and read a kind of text file, and how do I correctly implement a rechargeable battery.

Thank you greatly!

What volume of data is involved ?
A 2 digit number implies up to 100 possible entries. How many characters of text is required for each entry ?

Knowing how much text is required will inform the decision on the required hardware.

UKHeliBob:
What volume of data is involved ?
A 2 digit number implies up to 100 possible entries. How many characters of text is required for each entry ?

Knowing how much text is required will inform the decision on the required hardware.

Apologies, Not something that crossed my mind while posting...
I looked into available LCDs to see what standard sizes there are.... a 4x20 size will suffice as the maximum string should be no longer than 20 characters.
And yes, a 2 digit number implies 100 combinations, but will be capped at approximately 60-70.
So with that said and using the 4x20 LCD, the largest possible dataset would look something like this (but in practice have less than half the total possible strings):
00 = String 1, String 2, String 3, String 4
...
69 = String 277, String 278, String 279, String 280.
Hope this adds some clarity regarding the amount of data to be stored

Edit:
I did a quick bit of researched to estimate the dataset storage size. Assuming 70 combinations, 4 available strings, each at 20 characters (70x4x20), that would be 5600 bytes. In the real world, less than half the space is required, but to be more on the safe side, 4kb for the dataset would do.

If this is too much to store on the hardware without hard-coding, and require a sort of storage shield, then I'd like the possibility of storing approximately 5 datasets. This would equate to 20kb of required storage if using a shield.

If the Arduino is to be used standalone then that sounds like a job for an SD card

UKHeliBob:
If the Arduino is to be used standalone then that sounds like a job for an SD card

Will an external EEPROM module suffice?

bluebell:
Will an external EEPROM module suffice?

If it has the required capacity, but how are you going to get the data onto it ?

UKHeliBob:
If it has the required capacity, but how are you going to get the data onto it ?

Haven't worked with EEPROM before... but the fact you're asking leads me to believe that the end user isn't able to add data to it... and rather it would need to be pre-loaded with all its possible data prior to giving to the end user?
A feat that's possible, but difficult and annoying to do.

You could create the data and load it into the EEPROM attached to the Arduino via a Serial link, but why complicate things when you could copy the data to an SD card on the PC and physically move the card to the Arduino ?

The end user could certainly add/revise/delete data directly on the Arduino but user input would be clumsy without using a keyboard

Other possibilities include copying the data to the Arduino using a wireless link or over a network link. How often do you envisage the data being updated ?

Are you planning to use modules or have a dedicated PCB?

An other thing to consider is how you need to power it. If it's battery powered, you might want to consider a 3.3V microcontroller like the ProMini 3.3V/8MHz. This will imply that you e.g. need a 3.3V LCD display (and not a 5V version unless you have space to add a level shifter).

I agree that an SD card would be the best way for the end user to load/update the data.

As most 20x4 LCD are 5V, suggest sticking with a 5V Arduino. Nano is the simpler choice or 5V Pro Mini for longer battery life. With the Pro Mini you will need a usb to serial adapter, which does not need to be part of the final circuit and can be used on other projects in the future.

For batteries I would suggest 4xAA NiMH rechargeable in a holder. These can be quickly changed and charged in a standard household charger.

To prototype your circuit I would recommend breadboards, a couple of large ones which can be clipped together. Try to plug all components directly into the breadboards where possible. I would use solid core wire to make the connections, laid flat on the breadboard, rather than a spaghetti mess of Dupont wires.

An obvious question is why use an Arduino at all ?

Most people carry with them a device that can hold data, has keyboard input and a decent screen, ie a mobile 'phone. If WiFi or internet access is available you would not even need any data or an application on the 'phone as you could use w Web browser to access and display the data

Thanks everyone for your responses.

Firstly, there are many dedicated devices made and utilised where a smartphone will be suffice, but not only is it for the fun and principle of it all, but the end user is typically of the older generation that don't always carry a phone on them. Additionally, phones and adverse outdoor conditions don't usually go well together, especially cheaper phones without IP ratings.

An SD card module will be the way I go about storage for sure. Thanks for clarification on that.

Not only will it be battery powered, long battery life is desired. I don't mind the extra initial work using an adapter etc for the Pro Mini if that means longer battery life.

I just want to confirm, that you are suggesting 4xAA batteries, because wired in series will equate to 6V power for the Arduino? If 5-6V is the requirement for input power, what is the advantage of AA over flat LiPo batteries or AAA batteries (both would give a slimmer profile)?

Lastly, If it so happens I need to make many of these products, I'll be designing and creating my own custom PCBs (but I doubt this will ever happen. Just a fun side project idea).

NiMH cells have a lower voltage than non-rechargeable AA/AAA cells. 4 cells, fully charged, can be a little over 5V but soon drop to 4.8~5V. This can power the Arduino directly via the 5V pin rather than via the Vin pin, which requires 6.5V minimum. Lipo provides only 3.7V, which is not guaranteed to run a 5V 16MHz Arduino, forcing you to choose a 3.3V 8MHz arduino, which in turn leads to problems powering and driving the lcd. Two Lipo would provide 7.4V and could power the Arduino via the Vin pin, but then around one third of the energy in the cells would be turned into waste heat by the Arduino's regulator.

LiPo are more expensive, require special chargers, and circuits to protect them from damaging over-discharge.

Very long battery life would require careful choice of components, which may not be the least expensive versions available, and possibly some extra circuits to disconnect components from power when not in use, such as the sd card module. Modifying the Pro Mini to remove it's power led may be required.

Maybe choose an lcd which is "transflective" and can be read in daylight, but also has a backlight for night use if that is required. The backlight can also be switched off after a delay, to save power.

PaulRB:
Very long battery life would require careful choice of components, which may not be the least expensive versions available, and possibly some extra circuits to disconnect components from power when not in use, such as the sd card module. Modifying the Pro Mini to remove it’s power led may be required.

Maybe choose an lcd which is “transflective” and can be read in daylight, but also has a backlight for night use if that is required. The backlight can also be switched off after a delay, to save power.

Thanks for the info in both your latest posts. Powering the project is my biggest headache.

Happy to avoid the LiPo as I know they are pricier, and you make a good point with the voltages.
How sensitive is the arduino for input power? Will the 6v from non-rechargeable batteries damage it if applied directly to the 5V pin? Just curious, because I’d prefer the system to utilise non-rechargeable batteries, or be sealed and rechargeable by USB connection.

Also, have never heard of a transflective display, but I can look into that as night time use isn’t required.
6 hours of continued use before battery charge/replacement would be a nice goal, but I honestly haven’t got a clue how long such a system would last with NiMH batteries prior to taking ‘battery-life-increasing’ steps.
It should last atleast 1-2hrs, more than 6 would be great… but I don’t even know what field I’m playing on, To be able to set an accurate goal (if that makes sense).

Yes, 6V applied to the 5V pin could damage the Arduino.

I can't understand why 4xAA non-rechargeables would be acceptable but 4xAA rechargeable would not. I would not recommend using non-rechargeables, for anything, for environmental reasons.

If you want to use LiPo, you can buy charging/discharge protection modules. This is more space and expense, and you need to go 3.3V. You can get 3.3V Pro Mini, SD card modules, but a 3.3V LCD may be more difficult to find. The cheaper ones are 5V only.

If you are going 3.3V, 3xAA NiMH is another option.

Battery life will depend on usage patterns, obviously. With careful use of sleep modes, it should be relatively easy to get consumption down to a few mA when in standby. 4xAA NiMH would have a capacity around 2000mAH, so if you got consumption down to, say, 2mA, that would give 1000 hours on standby. During use, current will probably be 30~40mA, but I guess that would only be for short periods?

If you do decide to go with NiMH cells, use the "ready-charged/stay-charged" variety. Normal NiMH will self-discharge in a few days, no matter how little current your circuit draws. LiPo and Li-ion cells naturally have a very low self-discharge rate.

Very strange… I posted a reply and it didn’t show… apologies if this now appears later as a sort of double reply.

I only ask about non-rechargables due to ease of access as I’m quite sure that myself and the original end user don’t have NiMH chargers… that’s why I also mentioned the possibility of charging such batteries while inside the unit via USB. I know this is don’t with LiPo but wasn’t sure about NiMH.

The battery type and capacity info is very helpful however. I will be seriously considering the NiMH. Just trying to see all available options first.

Recharging any type of battery inside a sealed enclosure is not wise, I am pretty certain. I don't know how waterproof rugged phones achieve it. I guess they must have some kind of pressure release valve.

I'm quite sure that myself and the original end user don't have NiMH chargers...

I have 3 in almost daily use, and probably one or two more lurking in boxes somewhere. It seems strange to me that not every household has at least one. They are not expensive. No wonder the planet is in such a mess!