Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2001-05

Embedded Linux Journal - ThinkNIC Contest

3 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Jeff Wormsley

Hi,
The current (May/June) issue of the Embedded Linux Journal (http://embedded.linuxjournal.com) is running a contest using the ThinkNIC (http://www.thinknic.com) internet appliance as an embedded system. I am thinking of entering this contest using FreePascal as the programming language, and would like to know if anyone could make any recommendations or would like to help (I don't think I could share the prizes if we won, though. ;^) )

I hope this message isn't off topic, but perhaps others in the FreePascal community might want to enter as well, and if one of us made it as a finalist, then it would be great publicity!

Anyway, here is what I plan to submit as my entry. If anyone wants to give me some pointers on cleaning it up, I would appreciate it.

Thanks,
Jeff Wormsley

- - -

Hello,
I am seriously considering entering the NIC contest, but I am unsure if my limited Linux experience will allow me to complete it. But, with the availability of resources such as the Embedded Linux Journal and many newsgroups and websites out there, I think I may be able to do it. So, here's my entry. We'll see!

1. What is the title for your project?

Linux Digital Jukebox

The concept is to build a replacement for bulky, expensive, hard to maintain jukeboxes (this is NOT yet another home/car MP3 jukebox!) by using commercial, off the shelf products and employing the Linux operating system.

2. What need or desire will your embbeded Linux project satisfy?

Tranditional jukebox systems employ complicated mechanical systems for changing CD's or 45's. These systems are expensive and very prone to mechanical breakdown. Loading and unloading these mechanical changer units is also a difficult and error prone procedure. Also, the control boards in these units are expensive to replace when damaged, and are difficult to update.

By replacing the control system with low cost, commercial off the shelf (COTS) PC components, and the mechanical changer systems with very low cost, easily replacable hard drive units, system costs can be greatly reduced while increasing reliability, capacity, and upgradeability. The Linux operating system can control most of the needed functionality of a jukebox system "out of the box", and can easily support remote diagnostics, software upgrades, and content replacement via either dialup or broadband (preferable due to file sizes) internet connections.

The resulting system will be much smaller than a conventional jukebox, offer much quicker search times for finding selections (including category, artist, and song title lookups), cost far less than conventional jukeboxes, offer a much larger selection, and be much easier to maintain.

Bullet List
-----------

o Low cost hardware and software
o Ease of updates (via internet)
o Greater capacity (Approximately 300 CD's on a 20GB hard drive, vs typically 100 CD's per jukebox) o Greater reliability
o Easier use by customer via genre and artist searches o Smaller size
o Easier accounting

3. What are your qualifications for carrying out an embedded Linux project, including programming and hardware experience?

While my use of Linux has been limited (light hobby use of FreeBSD and RedHat 5.0 through 7.0), I have been a professional programmer for 10 years, working with both PC and embedded systems. I have developed applications in C for Echelon Neuron processors with as little as 256 bytes of total space (code and data). I have programmed in Pascal since the earliest Turbo Pascal for CP/M machines, and currently concentrate on coding with Delphi. This experience can be leveraged into the chosen language for software development, FreePascal, which I have had experience with as well working with the Lazarus Project. My formal education is a BSEE from the University of Tennessee, and my current job is approximately 25% embedded design related, with the remainder in back end PC systems, supporting the embedded systems, as well as smart card applications.

4. What additional hardware, if any, are you considering using?

For faster boot time, I am considering replacing the 4MB flash card with a 32MB Compact Flash card as detailed in the May/June issue. The CD-ROM drive will be replaced by a large (20 to 40GB) hard drive used to store song files. Since the ThinkNIC does not have parallel or serial ports, nor an ISA bus, the keyboard will be modified to control a pulse mode bill validator, using the pulse relay output to drive a keypress, and the SCROLL LOCK LED to control the validator's Bill Enable line, with interfacing circuitry in between to adapt the signal levels and timing appropriately. To reduce cost, a standard CRT will be used for display, although an LCD panel would be more appropriate to reduce size, heat, and RF noise.

5. What software do you plan to develop? What tools and or libraries do you plan to use?

The first generation software will provide a simple graphical interface to control the playing of songs, displaying of cover art images, and control the bill validator. Also included will be simple accounting functions usable by the system operator. Later versions will incorporate remote software and content updates, both via an external telnet login and via front panel access to a server based repository. Billing and licencing issues can be incorporated into the server, for example to handle collection and reporting of RIAA public performance fees.

The software development will be done with FreePascal wherever possible, supplemented by C if required. Libraries will include either the SVGALIB, Graph3d, or fpGFX libraries, and one of the available Linux MP3 (or other compressed digital audio) libraries.

6. What sources of information and support will you consult while carrying out your project?

Linux Embedded Journal - Information on building very small customized kernals (ie: BusyBox project) and using Compact Flash interfaces.

www.freepascal.org - Freepascal documentation and libraries.

Usenet Newsgroups with Linux and embedded system focus.

Linux websites such as the Linux Router Project that concentrate on creating very small but useful kernals.

Various books on Linux usage and development.

Considering the scope of this project, I will most likely consider creating a SourceForge project and invite other members of the FreePascal community to assist in the project, if they would like.

- - -

Unknown author
to Jeff Wormsley
Jeff Wormsley wrote 6 lines
Hi, The current (May/June) issue of the Embedded Linux Journal (http://embedded.linuxjournal.com) is running a contest using the ThinkNIC (http://www.thinknic.com) internet appliance as an embedded system. I am thinking of entering this contest using FreePascal as the programming language, and would like to know if anyone could make any recommendations or would like to help (I don't think I could share the prizes if we won, though. ;^) ) I hope this message isn't off topic, but perhaps others in the FreePascal community might want to enter as well, and if one of us made it as a finalist, then it would be great publicity! Anyway, here is what I plan to submit as my entry. If anyone wants to give me some pointers on cleaning it up, I would appreciate it.

I think it is a very interesting idea; I don't see any obstacles which would prevent you from making such a system using free pascal. Many things should be available already, FPC could be used as the glue to make things work together.

The only tricky thing might be controlling the bill validator.

Michael.

Jeff Wormsley
to Unknown author
AM wrote
The only tricky thing might be controlling the bill validator.

I think that can be done fairly easily. I plan on stripping a keyboard and tieing the relay of the validator to a key (like F6 or some other rarely used key). So, each bill pulse will just be a keystroke. There is an enable signal on the validator, and I plan to use the keyboard's scroll lock signal to control that. There is a brief moment at power up that it is on, but no one should be using it when it is powering up. When my program is ready to run, I can turn on the scroll lock (I know how to do it in DOS/Win32, shouldn't be difficult in Linux) and the validator should be enabled. If the ThinkNIC had a serial port, I would use the more modern MDB (serial) validator, but as it is, that would entail buying a USB serial adapter and figuring out how to get USB support to work on the box, which is beyond my abilities. (There are only USB drivers for about 5 printers included with the package, and several people have had no luck getting USB to parallel port drivers working with it.) If worst comes to worst, Hagstrom Controls sells a Keyboard to I/O controller that is programmable. But I would rather avoid the $120(US) it costs to buy such a thing.

Jeff.