Question : Problem: Building a System

I know that the title is pretty broad, that is because I could not find an exact short description. Here is the situation: I am trying to figure out the best route to go; I want to build a simple system that is composed of a monochrome LCD and a small board capable of:
- Reading a text file (could be hard wired into the board or saved in a memory card)
- Simple Navigation through the file, moving through lines and stuff.
That is it, seems simple enough, except for the fact that I have no clue on how to build, or design boards for that. I am not asking anyone to design anything, I am asking on how feasible it is if I wanted to do it myself, would I need an expert? What do I need to know about mass producing this?
So to wrap it up, if I was to enter this field what do I need to learn, or what kind of expert would I need to hire to help do this?
By the way, the system I am trying to build a prototype of is a simple ebook system.
Thanks for any help.

Answer : Problem: Building a System

Hi!
As always with this kind of questions, you need to find the balance between development cost vs. unit production cost, i.e. when you want to produce a lot, say 10+ it always becoms a custom design solution made by experts on electronics and mechanical production (for the casing etc). In small quantities, lets say less than 50, it is feasible and eceonomically defensable to build all yourself if you have the knowledge.
All inbetween could be solved with a custom-designed (or ready) single board computer with interfaces for     keys and display. The relationship is : the more you get ready, the higher the unit cost, and more interesting to make your own solution.
As you have described, you don't need any of the features of a Windows like OS. If you want a fast, but neat solution you could go for some simple (single-board) PC that boots with OS from a ROM and accepts diskettes or USB-memory for the texts. Calao in France offer timu Linux-based computers.

I personally would design a microcontroller solution, probably 8051-family, that easily could have all the OS in OTP-memory (on-chip) and can scan keys with some inputs, and handle output to a display on an other. In that case, using a USB-interface, these memory sticks would be the most practical alternative.
That MPU also comes with serial interface, that enables easy downloading from PC etc. Also, there are CMOS versions that can allow very long battery life. Atmel AT89C51SND1C (or cheaper AT 89C5131, without MP3) comes with USB interface.
Also the ST72F651 is an economic alternative, it comes with both USB and support for Compact Flash etc memory cards.
Even a RISC microcontroller with USB, like the PIC18F4550 would do the job nicely.
All alternatives can be run with 3-4 NiMH ackumulators for at least 40 hours (ca 20 mA, but tweakable).
If you want to download the text, an external SRAM of ca 128 KB would be needed.
For the display you can us the standard 8-bit interface that is common, ot the more expensive alternatives with USB or serial port.
An MPU with USB interface on-chip is more expensive than MPU+external USB interface, but large-volume pricing versus production overhead is to its advantage.
Future Technology Devices (ftdichip.com) have a range of controllers for USB with intelligence that could be sufficient for presenting characters from memory on a display.

If you want to go for this microcontroller solution you would need to:
buy an evaluation kit, or (much more expensive, but necessary for advanced programming and debugging) an in-curcuit emulator.
learn the assembly language for the MPU (for MCS-51 family it's similar to assembler of PC processors)
learn about the interface protocols, i.e. which I/Os to pull high or low at which time (for display/memory)
learn the basics of interfacing CPUs with peripherals, i.e. use of buses and control lines.
learn how to scan a keyboad matrix if not enough I/O lines.
learn how to use registers and other things in USB interface
learn how to make a simple (but stable) real-time OS kernel in the MPU
learn how to build a test environment (experimental boards, soldering etc)
probably you will need an oscilloscope at times, if debugging gets stuck
All this is about the programming, and is not too difficult, but will probably take months if you have no experience of programming and hardware. If you have done system programming, and understand electronics, you should get output on the display within days, if connectons on development board have been done correctly.
To design a circuit-board for a small series, you could learn how to do yourself, but it shouldn't be too expensive to let somebody do it for you, because an experienced engineer will easily detect mistakes that are difficult to correct afterwards. If you have selected the right components, including power and interface parts, and connectors, it is fast to place then and do the routing (few hours). But to learn how to do it well is another thing... Of course, I assume that you by then have done all the basic testing, so that you know that the components are sufficient and the connections are correct.
You could order a test series of 5 PCBs and have them in a week or two probably for $300-600, but at 50 pcs, the cost is about $5 each.

At last I could say that it is challenging, but really fun, to do this kind of development. If you have the interest it will be rewarding, but if you only want to solve a one-off task, probably someone with the experience should assist at most of the steps. If you are not a person of structure and order, then the task could be even heavier. But, there are application examples for the  processor that can be very helpful.

Best regads
Nils
Random Solutions  
 
programming4us programming4us