4
\$\begingroup\$

A bit of background: We have a system currently in production, but the original programmer passed away, and the current hardware manufacturer cannot find hardware to run the (currently) DOS system, so I need to re-implement this in a more modern platform. I can only change the programming and the motherboard hardware.

I asked over in StackOverflow and was suggested I ask here.

I am new to the locating hardware side of embedded programming and so after being completely overwhelmed with all the choices out there (pc104, arduino, rabbit, custom boards, a zillion options for each board, beagle, volume discounts, devel kits, ahhh!!) I am asking here for some direction borrowing from your experience. (What would you do?)

Basically, I must find a new motherboard and (most likely) re-implement the program logic. Rewriting this in C/C++/Java/C#/Pascal/BASIC is not a problem for me. so my real problem is finding the hardware. This motherboard will have several other devices attached to it. Here is a summary of what I need to do:

Software requirements: Very minimal. No need for RTOS or multitasking, very low CPU requirements, I just need something I can program and something I can put a remote update mechanism into (updates to the code will be downloaded via modem maybe 1-4 times a year).

Required hardware:

  • 2 RS232 serial ports (one used all the time for primary UI, the second one not continuous use [it's a serial printer])
  • 1 modem (9600+ baud ok) [Modem will be in simultaneous use with only one of the serial port devices (UI), so interrupt sharing issues with one serial port is OK, but not both]
  • Minimum permanent/long term storage: Whatever O/S requires + 1 MB (executable) + 512 KB (Data files)
  • RAM: Minimal, whatever the O/S requires plus maybe 1MB for executable.

Nice to have:

  • USB port(s)
  • Ethernet network port
  • Wireless network

Implementation languages (any O/S I will adapt to):

  • First choice Java/C# (Mono ok)
  • Second choice is C/C++/Pascal
  • Third is BASIC

Ok, given all this, I am having a lot of trouble finding hardware that will support this that is low in cost. Every manufacturer site I visit has a lot of options, and it's difficult to see if their offering will even satisfy my must-have requirements (for example they sometimes list 3 "serial ports", but it appears that only one of the three is RS232, for example, and don't mention what the other two are, or how much it costs (or is even possible) to make it RS232). The #1 constraint is cost, #2 is size.

Can anyone help me with this? This little task has left me thinking I should have gone for EE and not CS :-).

Also, please let me know if I can phrase my question any better.

\$\endgroup\$
3
  • 4
    \$\begingroup\$ A little more detail on what you're looking for as far as cost/size. Eg, for some people $200 is cheap, for others $200 is expensive. And do you need it to fit into a 2 inch space or if it's 2 feet is that ok? Just some rough requirements will help. \$\endgroup\$
    – davr
    Commented Apr 14, 2010 at 0:03
  • \$\begingroup\$ Some further questions: Would the presence of Ethernet and/or WiFi eliminate the need for a modem? Are you comfortable hooking up level shifters to turn a simple UART into a RS232 compliant port? How many modules are you needing to make (would a more expensive, easier to use system make sense over a bare-bones kit? What really is your cost constraint (this is very important!)? \$\endgroup\$
    – W5VO
    Commented Apr 14, 2010 at 2:41
  • \$\begingroup\$ What is your target cost? What is your target size? What type of environment do you need the system to work in? What does the system actually need to do? It sounds like you have an embedded PC you are trying to replace. Are embedded PCs too expensive for your application? USB can be converted to RS232 without much difficulty. I am not sure about the Modem. Haven't looked for one in a while. \$\endgroup\$
    – jluciani
    Commented May 18, 2011 at 11:29

4 Answers 4

4
\$\begingroup\$

I don't know of a exact match for this spec, but there is some quite nice embedded Linux cards out there that may fit your need.

Just have a look at this page: chiphacker.com - options-for-a-small-linux-hw-platform

A bonus of using Linux is that you could use most languages, but I would recommend using C or C++. Maybe Java if you can find a JavaVM port for the hardware you select.

You could even use pascal if you feel like it (see http://www.freepascal.org/), but I don't think that it is a good idea...

\$\endgroup\$
1
\$\begingroup\$

Maybe you can use an ARM Cortex-M3? The peripherals would not be a problem but your code size/memory requirements may be. Take a look at the mbed board. It is priced at $60 (DigiKey) or €53 (Farnell) and has 3 serial ports and ethernet. It has 512kB of Flash (program) memory and 64kB of RAM.

If you can give us more details about the device you have to replace, we may be able to tell if the Flash and RAM memory will be sufficient or do you have to search for a bigger device.

PS. I will try to help you as much as I can but in case you later decide you don't want to do it yourself, feel free to contact me (I can help with both the hardware and the software).

\$\endgroup\$
0
\$\begingroup\$

You could try a JNIB from Ajile Systems.

A couple of serial ports, ethernet, USB, runs Java.

http://www.ajile.com/index.php?option=com_content&task=view&id=23&Itemid=53

I've used their processors and they are very effective to develop on.

\$\endgroup\$
0
\$\begingroup\$

I don't see why is it hard for you to find hardware to run existing DOS system? Some ARM Linux SBC could be found for less then 100$ (plus external modem), but why going through all the platform change trouble if current solution runs well? Find some x86 SBC board as a temporary solution, and then only make platform change if you need new features hardly achievable with DOS. Platform change and rewriting all from scratch is very, very time consuming, and can eat all the budget if you don't have a backup plan. And I think you have one. Just googling with words "smallest" "dos" "sbc" gives enough hits for you to start.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.