Arduino Project Board for Students

Dear All,

My name is Martyn Butler I am a student at the University of Portsmouth and for my final year project i have decided to make an arduino compatible board but with built in features for entry level Microprocessor students to have all the requirements in one place. This will aid them to learn about inputs and outputs and the programming required to get from one to the other.

The board will NOT have external inputs or outputs but have on the board integrated outputs and inputs. For example LED's and LDR, POT, motors, IR receiver etc..

In the future I need to finalise what will be on the board to get the best flexibility but also allow me to get the price down as much as possible, the lower the price, the more i can push it.

So far i have the arduino's running on a breadboard and a TTL converter from RS232 i made using a MAX 232 ic using transistors and LED's as communication activity indicators.

I will be making a USB edition shortly from an FTDI RF232L or something similar, (cant remember exact IC number) as soon as they arrive in the post... i will set to work immediately. Its the SSOP-28 package =( not easy to use on a breadboard so have made an adapter with a bit of old PCB converting the SSOP-28 to a standard DIP-28W socket.

The final board i will make in SMD which should help to reduce the final footprint of the board and thus give more space for input and outputs.

I know the arduino is meant to be flexible and i am kind of going against the trend with trapping the end user in with one board without expansion but when i was learning arduino (i came from PIC originally) i found i could integrate all my inputs and outputs from previous, problem was i had to look around the house for these, so i looked online and no board existed with it all these built in and so that’s where my idea came from.

It is not meant to be integrated into people’s projects, it is not meant to be used as anything other than a development board to practice programming and addressing inputs and outputs. Once the basics have been learnt then the student would use a different board or even build their own!

I hope to include a new H file so you can address the outputs and inputs in a more abbreviated language, such as LED1, LED2, POT, LDR etc... Even though they may be fitted to different output and input pins, then as they become more advanced they can address the inputs and outputs manually i.e digitalWrite (1, HIGH); etc… Rather then digitalWrite (LED1, HIGH);

I want to have my own board listed in the Arduino software and am prepared to work to integrate it if required, (I come from a programming background, sadly it was all done with PIC chips and BASIC language). C/C++ is not new to me but I am out of practice with it and so is there someone I should contact.

I don’t have a name for my board yet although have considered Eduino until I realised it’s taken by a serial comms arduino compatible platform, so am left with the choice of Studuino, being the Student Arduino development platform.

Anyway I am basing my design on the ATmega168, there is no point going for the bigger memory option as it would not be utilized and wasted cost, but I did wonder about a bigger ic for better I/O compatibility.
In summary of what I am asking for from the Arduino Forum, is assistance on where to get access to the team which create the arduino software, and any ideas or comments as to why or not to do this,

I would appreciate any feedback you have to give on this.

Kindest Regards
Martyn

I hope to include a new H file so you can address the outputs and inputs in a more abbreviated language, such as LED1, LED2, POT, LDR etc...

Please, please, please, do not do that. Learning how to program properly is orders of magnitude easier than to unlearn how to do it wrong first.

Perhaps "wrong" is too strong, but turning an LED on using digitalWrite(pinNumber, value) is already pretty simple, and an abstraction at that. If one uses your board, and learns that turning pin 7 on is performed using LED7(on);, that is NOT how it is done when using a regular board. So, the student has to unlearn the old way and learn the proper way. Learn the proper way, first.

Hello Paul,

Your comment is very vaild and now i have read your comments you are completely correct, there is no point in helping students to learn a language which they would then have to relearn to use on their own board. Instead i will include a glossary at the back of a manual or something with all the input/output addresses and avoid the H file for the time being.

But i would still like to select my board from the list and am keen to hear peoples comments on how to do this.

Thanks once again for your comments.

Kindest Regards
Martyn

Selecting your board should be easy. Repackage the arduino IDE with a modified boards.txt file.
However I would advice not to do so but to create an Arduino shield and an optional Arduino library (this way you have your header file).
This way you can

  1. Have a Arduino in the box as a growth path.
  2. Learn the students about components.
  3. Learn the students about compatibility
  4. start from a solid existing hardware
  5. Add a library to hold the business names of the objects (I prefer digitalWrite(LED1, ON) to digitalWrite(pinNumber, value) )
    Just my 5 cent
    Best regards
    Jantje

Thankyou for your kind comments,

My project is to design a complete board not just a shield so i must remain with a complete board, the theory is that sheilds will get lost easily or damaged when connecting them together so that one is out, but your other ideas are worth thinking about, thankyou.

Kindest Regards
Martyn

..beware this is not my strong point....

I am not sure if this is the only file you need but, on my widows computer this file: arduino-0022\hardware\arduino....boards.txt contains board settings. If your project is based on Uno for instance, copy everything except the board name.

Here is some of the file contents:

##############################################################

uno.name=Arduino Uno
uno.upload.protocol=stk500
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino

##############################################################

atmega328.name=Arduino Duemilanove or Nano w/ ATmega328

atmega328.upload.protocol=stk500
atmega328.upload.maximum_size=30720
atmega328.upload.speed=57600

atmega328.bootloader.low_fuses=0xFF
atmega328.bootloader.high_fuses=0xDA
atmega328.bootloader.extended_fuses=0x05
atmega328.bootloader.path=atmega
atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328.bootloader.unlock_bits=0x3F
atmega328.bootloader.lock_bits=0x0F

atmega328.build.mcu=atmega328p
atmega328.build.f_cpu=16000000L
atmega328.build.core=arduino

Also, I think you should consider putting test points on your board to allow using a volt meter or an oscilloscope for the students to learn about tools used for troubleshooting.

Probably a little late, and doesn't fit into your goals - but why not a project board that can plug into a standard Arduino Uno? Have a spot where the Uno can mount, then a simple shield that plugs in, with a multi-pin connector that has a ribbon cable going to your custom I/O board. That way, the students can learn how to use your system, see how it interfaces, etc, then gradually you can "wean" them off the learning board, and by the end of things, they have a "bare" Uno they can play with...?

Just an idea... :slight_smile:

Here we go! The answer to adding a board to the IDE.
http://code.google.com/p/arduino/wiki/Platforms

design a complete board not just a shield

There are shields out there much more complex than the Arduino itself (think MP3 player, for example).
Some shields are equipped with the "Arduino chip" (ATmega328).
Do not underestimate the power of the shield :slight_smile:

Thankyou to all have replied,

Thankyou for your help in the right direction CycleGadet, I will look into this, i read this somewhere before although when i copied and pasted the uno below and changed the title of the board, it had no effect. Maybe i did it wrong i will read again and try again :slight_smile: The test points is something i considered already but mainly for fault finding in manufacturing maybe i can make use of them for learning also.

Cr0sh, thankyou for your comments,

I am not entirely against the idea of a shield although my project specifies that it should be a completely new board.

Please keep the comments coming i am open minded and appreciate all comments being postive or negative, ideally i would like to hear from lecturers about what sort of things they would want to be teaching students about how to address in programming. I.e what inputs and outputs would be a solid starting ground.

Kindest Regards
Martyn

Just been informed a shield may not be out of the question, so i am still open to more ideas.

Without the need for a microprocessor on the shield i may have more room to do more things...

I did originally like the idea of a all-in-one although the shield does seem to generate more interest so am interested to hear about what people would want from a shield.

Kindest Regards
Martyn

To help me push things along please can you comment which method for students to learn you prefer or preferred when learning. I.e which output would help you learn, switching an LED on one after the other in a knight rider effect for example.

For example LED's or Sound or Motion

I always worked better with learning from light outputs anyone have any different opinions?

Kindest Regards
Martyn

Making something blink is always nice! And having a lot of LEDs (or at least outputs that can drive LEDs) is very helpful for debugging as well. Especially if you don't have a logic analyzer at hand all the time.

And that leads to I/O expanders / shift registers and I²C / SPI communication. Good to know about that.

Hello,

I do agree making something blink for me or LED's chase in sequence has always been a nice feeling of control and power and a great boost in confidence to tackle the next challenge.

I think i can be certain LED's will feature on my board although the amount is yet to be decided, maybe i could feature alot of display techniques, such as dot matrix displays, LCD, LED etc...

Kindest Regards
Martyn