Unsure what board to use

Hi,
I'm currently creating a school project of a number converter and need to make a physical product./ I have created the program in python, and I want to put it onto an ardurino. I'm new to ardurino, and I'm not sure what board to use. The program size is 128 kb, and i require a keypad input, and a LCD display. What is the best board for me to use?
Thanks,
Toby

Toby_Resnick:
Hi,
I’m currently creating a school project of a number converter and need to make a physical product./ I have created the program in python, and I want to put it onto an ardurino.

The Arduino isn’t coded for using python, but rather C/C++; I’m also curious how you coded this “blind” without having any embedded I/O available (not saying it would be impossible - just curious as to your solution)…

Toby_Resnick:
I’m new to ardurino, and I’m not sure what board to use. The program size is 128 kb, and i require a keypad input, and a LCD display. What is the best board for me to use?

Since you mention you used Python and the Arduino uses C/C++ - none of them will work for you. If you can re-implement your logic in C/C++, using the Arduino IDE - then compile it (but not upload it) - you can then know the size of the hex executable that would be uploaded to the Arduino, and from there be able to decide on which version to use.

You also didn’t say what you mean by an “LCD Display” - how is it interfaced? Is it a large graphical display? Does it require parallel I/O coupled with a memory buffer? Or is it a standalone system with an intelligent controlller? If so, how is it interfaced? SPI? I2C? Some other method?

Basically, you would need to know this information to know which Arduino to get as well, because of pin constraints; alternatively, depending on the methods and needs involved, there might be a way to expand the I/O capabilities if a smaller Arduino with fewer pins can be used.

Lastly - if you can’t (or don’t want to) convert the code from Python to C/C++, then I would suggest you look into using a Raspberry Pi or some other similar Linux-based embedded controller - you can easily run Python on those, and gain the needed I/O for the other parts. Of course, such system impose their own constraints and understanding in order to properly use them. They also don’t tend to be as easy for newbies to use (from the hardware side - setting them up to boot and run tends to be fairly easy for a base install).

I agree with cr0sh, but I assumed that you wanted to adapt the program to run in C/C++.
You could try the Arduino IDE and see if you can make the code compile, so you can see for yourself if that is what you want.
Download the Arduino IDE (version 1.0.6 or 1.5.8 BETA) and try to make the code compile. You could select the board "Arduino Mega or Mega 2560". The output at the bottom of screen shows the size.
Do you know what size of ram you need ?

The Arduino Uno is only 32kbyte.

The Arduino Mega 2560 has 256kbyte code memory, but still only 8kbyte ram.

You can attach an Adafruit shield for display and buttons : http://www.adafruit.com/products/772
And that is all you need. It is old-style with a cheap looking display, but it is the fastest way to get it working.
You could add a nicer display an buttons once it is working.
Or do you need a full numeric keypad ?

Or you can leave the normal microcontrollers behind you, and go for the newer ARM processors.
The Arduino Due needs version 1.5.8 BETA of the software.

512kbyte code size
96kbyte ram
But I don't know if that would be considered cheating :wink: You have to ask your teacher.

hi,
The interface will just be very simple, and at most has 3 lines of writing that need to be displayed, but that can be changed to less if needed.
For the product, I will need a full numeric keyboard.
I don’t think that it will need much ram, but how can I find out how much exactly?
currently I’m just checking if the compiler will work with my code, but when I researched earlier there was a way for it to work.
will post more info on how it runs when I finish downloading the compiler.
Thanks, Toby

Those LCD displays are often 16 characters per line and 2 rows. They are called 16x2 or 1602. There are also 20x4 or 16x4, like this one : Basic 20x4 Character LCD - Black on Green 5V - LCD-00256 - SparkFun Electronics

Or you could choose a graphical OLED display, but they are often small. Those LCD displays are easier to use, the Arduino has a default library for the 16x2 and 20x4 LCD displays.

A keypad could be this one : Keypad - 12 Button - COM-14662 - SparkFun Electronics
It is a simple 3x4 matrix with buttons. The Arduino has a Keypad library for that.