<mosaic.cnfolio.com>

Project journal


The most recent update is located at the top, for older updates please see below.

It is recommended this journal is read from the bottom up.

04/06/12

This will be the final and last update to the journal.

The project is completed, and the product works meeting all the requirements as laid out in the Agreed Project Definition,

I have chosen not to upload the electrical data for the production board to here as it will be published on-line, but will hand it in with my project. If need be the data can be published later on here once the project is marked.

Arduino have since released a new version of the Arduino Programming Environment, this is version 1.0.1, i have already tested the Arduino Student Board with this and it works perfectly, there is a new "boards.txt" added at the bottom, if you replace the original boards.txt file in the new Arduino environment it will give you access to the Arduino Student Board from Arduino 1.0.1.

I have not contacted Arduino to get my board added to the list on the next release, but this may be done depending on if the product is put in to actual production. The data is all ready to be sent off to Arduino.cc if it is decided to produce the product commercially.

I have thoroughly enjoyed working on my project.

Kindest regards
Student 511998 (Actual identity to be revealed once marking is completed)

Martyn Butler



29/05/12

The Gantt timeline is uploaded at the bottom of this journal.

The work on this project is pretty much complete just the final report to complete and submit.

26/05/12

Today I got back on track with my project after my exams and have finished testing the board. A photo is shown below of the board fully assembled.

I have also made a short 5 minute video about the product and have uploaded it to YouTube, the link to this is below:
YouTube link - Arduino Student Board - 511998 ELECTRONICS

As far as the project timing is going, i am in front of schedule. I plan to post the Gantt chart shortly for the project and costing per item. (Costing will be based on producing 100 boards.


21/05/12

I hope to update my journal tomorrow although with other exams i find it hard to spend time updating this whilst working on the project and would rather work on my project then spend time updating my journal making no progress.

12/05/12

Two boards have been hand assembled and initially tested, both seem to work!

Will post a proper update in a few days time, right now have other things to focus on.

I hope to upload some videos shortly of them working and also some photos of the final product.

09/05/12

As always i have not stopped, i have had some production boards produced and are awaiting assembling, i have quotes for assembled but it was too expensive for a trial run of a couple.

Below is a sneak preview of the production board.

The plan to assemble the board has been created, the process of assembling the board will be as below:
1. Surface Mount Component
2. Resistors
3. Diode
4. Crystal
5. Crystal Loading Capacitors
6. Power Regulator
7. Capacitors
8. Arduino/Atmel Socket
9. Transistor
10. Tactile Switches
11. Headers
12. LED's
13. DC Jack
14. USB Connector
15. Potentiometer

This process has been decided working from the shortest component to be fitted onto the board, if taller components were fitted on the board first, it would make getting the shorter components closer to the board for neatness. There is also the need to have lots of room when mounting the surface mount IC due to the component being hand soldered! If this was not done first other components may be damaged trying to solder them in place.

01/05/12

Not really updated this much as so much is happening and i dont have time, but nevermind work is still being carried out on the project.

All of the artwork for the final production board has been created and a new electrical data document will be uploaded within the next few days, this time it will be more detailed and lean towards more of a specification and not just the PCB artwork.

Below is a sneak preview of the silkscreen for the top of the production board.

The packaging is finished, all whats left to do now is complete the written documents and hopefully get some production boards made!

I hope to upload some videos of my board shortly in operation, showing the following;
1. How it connects to a PC, (Operating system to yet be decided although works fine on Linux, Mac & Windows...)
2. How to download a program from the example libraries into the board.
3. How to burn the Arduino bootloader to a blank processor with the processor on my board. (just for advance users and a bit instructional for others who may want to burn an Arduino bootloader)

To be honest the top two can be combined and that's all you really need, the board is so versatile and has been designed specifically to be easy to use.

I know the project time lines have not been uploaded although due to this project being done in my spare time i cant always stick to a schedule and so the timeline changes on a daily basis, but either way any work required that week is carried out. A brief outline is below:

1. Background Research: (Est. 2 week(s))
Types of platform for students to learn about microprocessors – Completed
Decision on the platform to use – Completed
How to progress – Completed

2. Existing Board Investigation: (Est. 6 week(s))
What is currently available – Completed
Looking at current boards and their functionality – Completed
Programming of existing boards and possibilities – Completed
Minimal requirements of producing a shield or board – Completed

3. Decision of how to progress the project: (Critical) (Est. 2 week(s))
Evaluation of progress so far – Completed
Comparison of a new shield or a new compatible board – Completed
How to progress – Completed

4. Development of product: (Critical) (Est. 8 week(s))
Requirements/Specifications – Completed
Factory/Production capability – Completed
Initial Design – Completed
Initial Schematic – Completed
Initial PCB layout – Completed
Initial Arduino library creation – Completed
Initial Packaging – Completed

5. Assessment of prototype product: (Critical) (Est. 2 week(s))
Functionality – Completed
Testing – Completed
Quality – Completed
Packaging – Completed
Design Review – Completed
Requirements/Specifications Review – Completed

6. Alterations to prototype product: (Critical) (Est. 4 week(s))
Requirements/Specifications Alterations – Completed
Design Alterations – Completed
Schematic Alterations – Completed
PCB layout Alterations – Completed
Alterations to Arduino library – Completed
Alterations to packaging – Completed

7. Assessment of production intent product: (Est. 2 week(s))
Functionality – Not Started
Testing – Not Started
Quality – Not Started
Packaging – Not Started
Design Review – Not Started
Requirements/Specifications Review – Not Started

8. Alterations to production intent product: (If required): (Est. 2 week(s))
Requirements/Specifications Alterations – Not Started
Design Alterations – Not Started
Schematic Alterations – Not Started
PCB layout Alterations – Not Started
Alterations to Arduino library – Not Started
Alterations to packaging – Not Started

9. Finalising & Production: (Est. 4 week(s))
Production – Not Started
Marketing – Not Started
Project Review/Lessons Learnt Review – Not Started

Based upon this timeline i have exactly 6 weeks left till my project is complete assuming there isn't any issues, if there are it could extend to 8 weeks, my project is due to be completed in 8 weeks, thus i have left myself a 2 week window to complete any issues which may occur.

This timing is the time line i specified in February and has not been ALTERED or MODIFIED in anyway. The exact timeline above is in my preliminary report which i submitted just a few weeks into the project.

20/04/12

No more than a bit of fun with a camera...







19/04/12

The project is beginning to come to a close now and so i will update the timeline/progress on my journal in the next few days.

There is still a lot to do though but the end is insight.


18/04/12

Today i revised the packaging and created the artwork for it.

When creating the artwork i had to consider many things mainly cost, and so i tried to create a packaging which would be cheap to produce and therefore the basic specifications are below:
  1. The package was to be printed on one side only.
  2. The artwork was to use a maximum of two printed colours (This is one of the cheapest form to produce), (although if printed on a colour card could potentionally use three)
  3. The artwork to fit within the space of an A4 sheet of card ensuring all card space used is utilized the best it can.
  4. Minimal writing on the packaging as if the product was to be sold outside of United Kingdom the writing may need translating which would come at a cost.
  5. Clear about what the product does.
  6. Keep it simple, too much information would confuse people.

When creating the packaging i realized i have no company name/branding for my product yet, and so i have created a company name of 511998 Electronics, my student number. Photos are below of the initial design, although the packaging is not a packaging which needs to attract buyers (i.e Belkin, Netgear, Dlink and such like electronic companies) entirely as the board is the item the buyer wants/desires and so the packaging will soon be disregarded.







A PDF of the artwork is uploaded as Revision 3, this was created using Adobe Illustrator CS5. The raw data is not uploaded and so the PDF must be printed to scale if used.


17/04/12

Today i tested the Student Arduino board with a Linux Machine,

The machine was running the latest version of Ubuntu (11.10 at time of writing) and it worked like a dream, no need to install drivers as it automatically detected my board and installed the drivers for it.

A screen shot is below of the Arduino Environment with modifications running on Linux (Ubuntu)


Once the drivers are installed automatically without any prompts, the board programs perfectly and works as designed.


I then noticed that the version of the Arduino Environment was in fact version 0022, i installed this using the software package app store which is supplied with Ubuntu, clearly it is out of date/behind and so i had to manually download and install/compile Arduino 1.0 to work on Ubuntu myself, no big problem for any serious/committed linux user. With time the Arduino environment version 1.0 will be included in the software package app store but for the time being both editions work, i just wanted to ensure Arduino version 1.0 worked fine with my board on Linux.

A screen shot is below of the Arduino Environment version 1.0 with modifications running on Linux (Ubuntu)


Once again the drivers are installed automatically without any prompts (although this is an Operating System operation not the Arduino software), either way the board programs perfectly and works as designed.



16/04/12

Today the Student Arduino board was connected to a Mac for the first time.

The board required the drivers for the UART converter IC, these are attached at the bottom. (These cover both x86 and x64 type processor architecture)

The software modifications to the Windows based Arduino Environment were transferred to the Mac OSX variant, The Linux variant has been updated but i have not had chance to test it yet.

A screen shot is below of the Arduino Environment with modifications running on Mac OSX


Once the drivers are installed, the board programs perfectly and works as designed.


14/04/12

The packaging was modified to give the board better support.

New photos are shown below







A PDF of the artwork/cutting guide is uploaded as Revision 2, Again this cutting guide was created using AutoDesk AutoCad 2012. The raw data is not uploaded and so the PDF must be printed to scale if used.

I believe this to be the final design, and so just needs dressing (colourful artwork adding)

11/04/12

Today the packaging was considered for the product, the packaging is simple and plain at present but practical. This is similar to Arduino official packaging.

The packaging proposed for this product is a piece of thick paper/thin card folded into a specific shape to cradle the board.

Attached are some photos below of the prototype board in the packaging.







The cutting guide is attached at the bottom, This cutting guide was created using AutoDesk AutoCad 2012. The raw data is not uploaded and so the PDF must be printed to scale if used.

10/04/12

A quick update, by altering the boards list in the Hardware folder with the addition of my board i was able to add my board to the "board" drop down menu inside the Arduino programming environment, I choose the settings of an atmega8 as this is the processor to be used in this board. The screenshot below is of the Arduino Programming Environment and the board list.


Attached at the bottom is the BoardList file which can be loaded into any Arduino programming environment, by overwriting the existing BoardList file in the hardware folder.


08/04/12

Whilst i am able to get the board to be powered by USB i can not get it to program whilst powered by USB, if i provide an external power source it will program first time every time. Due to the time involved to research this exact reason and it is of low priority i will skip this for now. Although I believe it is to do with voltage levels, but using a Multi-Meter can not see any difference.

I started to work on the next section which is integrating the board into the Arduino Environment and generally a PC. Now whilst i am program the board changing some settings of existing boards i want to create my own board type in the Arduino environment.

Firstly i addressed the issue of the PC not recognising my board correctly, and so the USB controller IC was reprogrammed using the manufacturers utility to the correct name and type. My board when first plugged into a unknown PC display as the screen shot below:


Microsoft Windows will automatically install the drivers or automatically download them from the internet and install them, the image below shows my board once it is installed.



05/04/12

I have uploaded my first sign off/documented assessment of the board and will begin to make the modifications to this board in the next coming days where possible.

This report is attached at the bottom under the name of "Prototype_Sign_Off_R1.PDF"


04/04/12

I just realised i have not uploaded any photos of my completed board so here they are:

This shows a close up of the actual board, whilst this looks big it is only 107mm by 76mm.


This photo shows the my home made ISP programmer using two Arduino UNO boards, i have the header on my board so will try to make a lead/cable to connect to the board to allow me to use an Arduino UNO to program the boot-loader to my board.


Finally this photo shows the board against an Arduino UNO for size comparison, i currently have my board powered using a PP3 battery (9V Square), it does work although only lasts about a day of solid use and so would recommend using a wallwart supply.

03/04/12 - Part 2

In regards the circuit of the USB to UART IC. The track layout is perfect and so my attention was drawn to the components, i know i have changed two components in the reset circuit due to cost implications and availability. The two components are the in line decoupling capacitor from the DTR output from the UART IC to the transistor which switches the reset pin to ground when a voltage is applied at the base in this case the DTR output on the UART IC. The capacitor was changed to a polyester capacitor from a ceramic disc type so it could be mounted easier on the board. The transistor was changed from a BC-547A to a BC-547B due to the preferred supplier not having this in stock.

I changed the capacitor back to a ceramic disc although this did not fix the problem on its own and so i swapped the transistor to a BC-547A and now the reset function works. From looking at the datasheet i can see no logical reason why the BC-547B will not work in place of the BC-547A but it does not, only the gain is different which is not required in this application, i even contacted Rapid Electronics technical support who said they have had feedback in the past of a similar nature although could not explain why/help me. Looking at alternatives from my preferred supplier (Rapid Electronics) based on the same TO-92 housing is the BC-184L so i will look at trialling this in place of the BC-547B.

Currently my board will allow the Atmel processor to be programmed with the Arduino Programming Environment via a USB cable. So it would seem this and all previous testing conducted that the board works exactly as designed, although more tests will be performed and their results uploaded later.

03/04/12

I have used an Atmel preloaded with the Arduino boot loader for the boards initial tests due to the fact i don't have an ICP programmer here at present, but i have found i can make one out of the original Arduino UNO boards from this link http://arduino.cc/en/Tutorial/ArduinoISP and http://arduino.cc/en/Hacking/Bootloader?from=Main.Bootloader so will try to do this later.

Using the atmel preloaded with the bootloader allowed me to check the functionality of the board for outputs and inputs. I used the blink program which comes with the Arduino environment and modified/changed it to flash all outputs on and off at a 1 second interval. This allowed me to test all of the outputs and they all work successfully. then I adapted the switch example program to read each of the input switches to turn on and off the outputs again all working successfully, with the final test being of the potentiometer, i created a program to read the value and use this value as the interval between the of all the outputs turning on and off. The programs described above are labelled Test1, Test2 and Test3.

I then looked at using the built in programming section which is the USB to UART converter, this does not seem to work at present, i will re check the circuit and ensure the layout is correct if all is correct i will turn my intention to the components.

Breaking this down into smaller sections i have found that, when plugged into a PC the PC detects the device, it installs my board as a FT232RL which is correct (currently the device name of the board, i will change this later) and adds a serial port to the Arduino Environment but the board keeps giving me a "out of sync" error when i try to program it. I received this before with my breadboard when i was having the reset issue (Where the atmel was not resetting correctly to receive the data), so i will first look into this area next as soon as i know the components and layout are correct.

I will upload a proper report at some stage of this board covering my findings, improvements and the tests carried out.

02/04/12

I began assembly today of the board using the pack I submitted to the board manufacture. Some photos are shown below of the steps listed below:

Step 1 - Surface Mount IC fitted


Step 2,3 - Resistors and Diode


Step 4, 5, 6 - Crystal, Loading Caps, Power Regulator


Step 7, 8, 9 - Capacitors, Arduino Socket, Transistor


Step 10, 11, 12 - Tactile Switches, Headers, LED's


Step 13, 14, 15 - DC Jack, USB Connector, Potentiometer
The first problem, the DC jack has a different lead configuration on the actual component to the component described in the datasheet! Thus meaning my pads/holes are not the correct shape for the component, although due to my cautious approach to designing boards i made sure all tracks were 0.5mm minimum (except for the surface mount IC where they are 0.16mm). This meant i could simply enlarge the holes from 1.02mm to 2mm for the ground and enlarge the positive pin from 1.02mm to 3mm and again seat the component perfectly, problem resolved. Although i will need to reconsider if i wish to continue using this component alternatively how i can alter the board assuming the manufacturer can cut slots in the board cheaply, it seems with the majority of companies this is very expensive and if you try to overcome it with several holes next to each other the board will fail Design Rule Checking (DRC), It seems that the most common approach is to drill a larger hole and fold the connector lead over so it is flat against the board bridging the slightly larger hole, this is even done on the Arduino UNO board. Photos are shown below of the problem described here:

The problem


The Resolution


The USB connector fitted perfectly to the board, so no issue here.

The second problem, the potentiometer didn't fit properly due to the lead configuration being different to the component I selected in EAGLE, this may have been an error on my part or on the software's part but either way the component didn't fit. This time the problem could not easily be resolved due to the footprint not even being similar. This would require new holes to be drilled completely and so the component leads were bent to fit in the holes, i intend to remove the component and drill new holes/adapt the board once initial testing is completed.

The board is now assembled, i hope to begin testing shortly, although initial signs are good, I supplied power to the board and there was no short circuits and the power light lit up, thus meaning the tracks should be laid out correctly, this said the tracks were double checked against the schematic before sending for manufacturer due to my rather rational approach of breaking the link between the schematic and the board, typically i would not do this although i feel my skills are more than capable of managing a board/schematic on this scale, for larger scale projects this way may not be so suitable. This said i would not use EAGLE in a professional environment even though i did upgrade to a professional license for this project i really miss the auto place feature available in so many other alternative software packages.

01/04/12

The plan to assemble the board has been created, the process of assembling the board will be as below:
1. Surface Mount Component
2. Resistors
3. Diode
4. Crystal
5. Crystal Loading Capacitors
6. Power Regulator
7. Capacitors
8. Arduino/Atmel Socket
9. Transistors
10. Tactile Switches
11. Headers
12. LED's
13. DC Jack
14. USB Connector
15. Potentiometer

This process has been decided working from the shortest component to be fitted onto the board, if taller components were fitted on the board first, it would make getting the shorter components closer to the board for neatness. There is also the need to have lots of room when mounting the surface mount IC due to the component being hand soldered! If this was not done first other components may be damaged trying to solder them in place.

30/03/12

I have created all of the PCB artwork into a single report/document, this is the document which was used to produce the prototype board, the board was produce without issues and currently awaiting assembling. All components were ordered and have arrived although still need to find a supplier for the FTDI IC able to supply low Minimum Order Quantity (MOQ). The report is attached at the bottom.

Photos are below of the manufactured board, the content was designed by me and the board was produced at Newbury Electronics.

Top View


Bottom View


25/03/12

Update of specification for the board, a few things have changed to make streamlining the board easier. The board now will contain an in circuit programming header, as i have no other way to program the IC,s and as said below it allows testing of each board. A PCB design is finally finished! just needs to be checked and then will be sent out for tender.

I have found that auto route function in Eagle to be the most useless piece of software i have ever come across and in the end decided to delete the referenced schematic and un-route all its recommendations and start from scratch on a bigger board/schematic this may create a problem although due to the small size/scale of this board it is perfectly feasible. If i was to do this again i would need to find a piece of software with auto route and auto place. The auto route did indeed work but it was very sloppy always taking the quickest route not the cheapest which resulted in lots of vias for no reason. This is expensive and a waste of money in production with unnesscesary holes to be drilled and plated, in designing the board myself from scratch i have tried to put the majority of the routing on the bottom of the board and minimal on the top.

I have two companies in mind and the internal University of Portsmouth facilities. At the moment the best price i have had is £30 on a 48hr delivery. With another quote coming in at £50 for a 10 working day turn around.

The board i have chosen is 2 layer FR4 board for the prototype, due to the fact i want "easy" access to the tracks on the board should i need to modify anything there will be no silkscreen on the prototype board and only top and bottom copper layers, no components have footprints which will short out the board though so this is not a big concern at present just looks a little ugly. This initial board is to check functionality and nothing else, aesthetics can come later.

The final proposed size of the board is 120mm by 80mm which is a nice size to have on a desktop/bench and within required constraints, i have located the power and the usb connector on the same side next to each other away from the output indicators and inputs.

Once the board has been made it will be assembled by myself so i can ensure all components fit snuggly into the holes, it will also allow me to ensure components are not stretched or crushed to fit in the allotted spaces. The smallest drill to be used is 0.6mm which should be ample for the component leads. If not i will make any changes on the pcb artwork for the production intent.

A component selection profile has been put together for the board containing all required documentation for the components such as datasheet and MOQ/Lead Times etc...


23/03/12

Haven't added much on here lately but a lot happening, having trouble using eagle cad software and had to contact a special expert, hope they can help me.

The problem seems to come in creating the PCB and mapping the tracks, it seems to confused top and bottom layers and forces through hole mount components to the top layer where it is impossible to solder to them, may have to consider using a single sided board and an adapter for the surface mount IC. I am also experiencing an a error loop of not being allowed to move components.

Hope i can solve this soon as its beginning to risk the project being delayed.

I am unable to find a pre-programmed arduino atmega IC on-line in the UK so will have to buy a standard IC and program them before the product would be sold, i guess this also acts as a way to internally test the board before dispatch to a customer. Indeed an annoyance and involves time and yet more money.

Packaging, well this hasn't been forgotten and i am wanting to use a cardboard sheet which is folded into a shape to protect the board similar to Arduino packaging, it is very low cost yet looks very professional. As for supporting documentation to go with the board i have considered explaining each section of the board with the circuit schematic and then basic programming code explanation of how they can integrate this into their own boards, so even when the board is finished with they will have the booklet/on-line guide as a reference.

Will also do a proper update soon.


15/03/12

Eagle cad library's can be found here:
http://www.cadsoft.de/cgi-bin/download.pl?page=/home/cadsoft/html_public/demo.htm&dir=eagle/userfiles/libraries&sort=time

Component BOM is uploaded at the bottom for the prototype board.
Schematic is also uploaded.
PCB data will be uploaded shortly.

Initial calculations show:
Cost for 1 boards components is £19.61 (Excluding FTDI and Ateml IC)

Calculations based on utilising Minimum Order Quantity (MOQ)
Cost for 14 boards components is £46.71 (Excluding FTDI and Ateml IC) thus meaning each boards components would work out at £3.34! an excellent starting price.

This cost is at the cost of the inputs and outputs though, the specification for the board is now as below:
5 x LED outputs connected to PWM output pins
3 x Tactile Push buttons connected to input pins
1 x Potentiometer connected to the analogue input
Uses a 16MHz crystal
12Vdc power input
All components are RoHS compliant
All components are through mount (Excluding FTDI IC due to limitations in manufactures capability)
USB B connector onboard for programming
This will allow for a prototype board to be made and all tests carried out, outputs may (hopefully) be able to change for production intent.


12/03/12

The final specification the project so far has evolved to is:

The board must:
• Use less than 200mm x 200mm in PCB space
• Operate on a 12Vdc Input as this is the most common found Wall Wart.
• Use less than total current draw of 1A due to limitations in regulators.
• Be able to be used within 5 minutes of opening.
• Contain at least 5 outputs, (1 output to use PWM)
• Contain at least 3 inputs. (1 input to use Analogue)
• Be able to be programmed using a USB port (with USB type B port on board).
• Not use any components which use harmful materials.(RoHS compliant)
• Must be self contained, no need for additional parts. (except power supply)
• All unused inputs/outputs exposed for students to attach their own devices/ potentially a later add-on shield.
• Use a crystal to ensure accurate time keeping.
• Allow for in circuit programming, no external programmer required.
• Self standing for use on a workbench or desk.
• Arduino processor must be removable for replacement in case of failure.
• Outputs and Inputs to be ‘Through Hole Mount’ components to ensure clear display.

Due to the cost of components, the possible options for outputs and inputs is limited, which is a real shame.



06/03/12

Need to do a proper update at some stage, but as a mind dump
I have add the FTDI library files for EAGLE software.

26/02/12

The project required me to look at software to layout PCB's, as i havent used this for a while i did some research into what is currently out there...

I have looked at:
Ultiboard by National Instruments
This the software i used all throughout my professional life developing PCB's. But it seems to lack a lot of components i need for this project and thus creating a lot of disappointment. I have contacted National instruments directly and they told me i would need to create the components and add them to a personal library, not an easy task! Considering this is a paid for piece of software i am disappointed with their lack of support.
Easy PCB
This software is free and easy to use but very restricted to their own manufacturing facility. It does not allow you to export Gerber files which are what is required by nearly all PCB manufacturer. Thus meaning if i used this PCB software i would be limited to using their manufacturing facility in Amercia.
Eagle PCB
This software seems to be very complicated to use but also very sophisticated. I think if it was more user friendly it would be a powerful piece of software for users of all level. Even as someone who has developed PCB professionally it is still a mind blow adapting. This said it has a very complete library and most companies have made their components in this library format meaning you can add them if not there.
It comes as a freeware version or a paid for version, but so far i cant tell the difference between the two. Arduino even use this (i believe) to design their official PCB's and schematics.

I have looked at some others not listed here due to not feeing they were capable contenders. I did look at a free open source PCB platform but it seems the open source support has dried up. Shame really.

My aim now is to get all of the first design completed and ready to start prototyping.

24/02/12
So much going on, often forget of late to update this. so below is a mind dump rather than a logical order. (will update it later)

To create a library to integrate into the Arduino platform i need to create 3 files, these are a .h file, a .cpp file and a keywords file.

Using this tutorial i have managed to create my first library
link is here: http://arduino.cc/playground/Code/Library
although i found this not entirely complete and perhaps written for an older programming environment and so have integrated a mixture of things from the first site and here
http://arduino.cc/en/Hacking/LibraryTutorial

The projected investigated the minimum requirements to use the programming environment and could not find a specific set of requirements laid out on the Arduino website. Because of this, the list of requirements laid out below have been constructed from hardware used to test the boards. These minimum requirements below are based upon Release 1.0 of the Programming environment.
Operating System: Microsoft Windows XP/Vista/7 32/64 bit, Linux 32/64 bit, Mac OSX 10
Processor: Intel Pentium 4 1.0 GHz or equivalent
Memory: 512 MB RAM
Hard Disk Space: 100 MB free
CD ROM: If no internet connection is available for software installation
Connectivity: 1 x free USB or Serial/Com Port (dependent on the target board)
Internet Connection: Required to download software (if CD ROM drive is not present)
Video: 4 MB Windows/Linux/OSX compatible video card.

Initial thoughts are that the board must:
• Use less than 200mm x 200mm in PCB space
• Operate on a 12Vdc Input as this is the most common found Wall Wart.
• Use less than total current draw of 1A due to limitations in regulators.
• Be able to be used within 5 minutes of opening.
• Contain at least 5 outputs, (1 output to use PWM)
• Contain at least 3 inputs. (1 input to use Analogue)
• Be able to be programmed using a USB port (with USB type B port on board).
• Approved for sale in Europe (CE Approval to EN 61000).
• Not use any components which use harmful materials.(RoHS compliant)
• Must be self contained, no need for additional parts. (except power supply)
• All unused inputs/outputs exposed for students to attach their own devices/ potentially a later add-on shield.
• Use a crystal to ensure accurate time keeping.
• Allow for in circuit programming, no external programmer required.
• Self standing for use on a workbench or desk.
• Arduino processor must be removable for replacement in case of failure.

Other requirements which the board should ideally be:
• Easy to use.
• Be of a high standard/quality.
• No sharp Edges.
• Made from as many recycled materials as possible.
• Contain surface mount components where possible to save space.


15/12/11

My next steps were:
1. Investigate more inputs and outputs for the Arduino. (Continued from last time - placed on hold 03/12/11)
Will resume this development in phase 2, once i have the specification.

2. Look into more ideas of what i want to do with the Arduino for my project. (On Going)
I will be creating a product that will encourage and attract new students to the subject of electronics. Now i have a foundation of a board to build on, my development has stopped and turned into considering what i need to add to the board to attract new students to microprocessors.

I believe before i can teach them about the board i need to go back to basics and teach them about the parts of the board which allow the students to use the microprocessor. From this it should help them to understand how to interface inputs and outputs, how to plan/write code and structure it so it is easy for others to follow. I do not want to bore them though with lots of unnecessary information just enough to have a clear understanding why we need each bit.

Power Circuit:
This is essential as it regulates electricity from a higher voltage in some cases to a safe voltage for the microprocessor to operate at. In the case of the Arduino it is 5Vdc, and so we use a 5 volt regulator, there are some also capacitors around the regulator which provide smoothing and reduce rippling. The bigger value capacitor typically an electrolytic smoothes out low frequencies and the small value capacitor removes high frequencies. Thus providing a stable power supply to the Arduino, an unstable power supply may result in random resets or uncontrollable readings on the inputs, such as analogue values as the reference would always be changing. I included an LED to show the power is available.

Arduino Minimum Circuit:
The Arduino is just the name of a bootloader (a piece of software which allows communication with the programming environment) loaded onto an Atmel microprocessor for users to use an easier programming environment to program the microprocessor. The microprocessor requires a clock to do its calculations this clock speed can be provided by a Crystal or a Resonator but either way one must be present. A reset switch is also included to allow the user to reset the processor at any point; This is not required in a final product as the user should not need to reset the processor (although by disconnecting and reconnecting the power will perform a reset of the processor).

Programming Circuit:
This allows the computer to talk to the Arduino bootloader on the Atmel microprocessor to allow for programming the processor with the code written in the programming environment by the user to tell the Arduino what to do. This is typically downloaded using a USB cable or a Serial cable.

I need to consider where to go from here, how to integrate it into the arduino programming environment for example.

3. Close out as many issues as possible above, the list is beginning to grow to an unmanageable amount. (On Going)
Completed.


My next step is:
1. Expand my idea of the Student Arduino Compatible board into a stronger idea and thus start to define my project.

Prototype Board Level 1 is complete, consisting of a power circuit, the Arduino basic circuit and two methods of programming, my attention will now turn to developing the board for the student.

13/12/11

My next steps were:
1. Setup some testing of counting using a resonator and a crystal and see if the results match the theory above. (On Going - placed on hold 07/12/11)
Have ran some tests, will post code shortly, i ran two atmega168 with the arduino bootloader, both on usb to uart converters and found over 1 hour, the resonator was 2 seconds behind with the crystal showing no drift at that time, this concludes my testing for now until i have decided what to do with my final project and if timing is important, but it does show for future reference there is a distinct difference and i have experienced it first hand.

2. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards. (On Going - Look into activity and completing programming circuit)
Have added two leds on the FTDI IC TX and RX pins as indicated in the FTDI datasheet. See photo below of led activity leds, did not look into activity lights on the MAX-232 converter as very few people will use this method to connect to the arduino but it stood well for me to learn the basics before embarking on using USB. I have completed this item now, and am happy to move on, i have added a schematic in item 6.



3. Investigate more inputs and outputs for the Arduino. (Continued from last time - placed on hold 03/12/11)
Will resume this developed in phase 2 of the development once i have the specification.

4. Look into more ideas of what i want to do with the Arduino for my project. (On Going)
Remains untouched, although i will develop my teaching aid for new students.

5. Learn more about the language used to program the Arduino. (Continued from last time - placed on hold 03/12/11)
After great success with following Jeremy Blum earlier on, i decided to follow his entire series located at "http://www.jeremyblum.com/", which i have now completed, opening my eyes to alot more inputs and outputs and a broader scope, in effect anything is possible with an arduino providing you can write the code for it. I will stop learning about the language for now until my final specification is completed, it takes up a lot of time, with debugging and slight alterations to match the components i have available.

6. Need to find a way to display/present my schematics of my circuits on breadboard layouts. (On Going)
I looked at virtual breadboard, although due to the cost it put me off, i don't agree with paying for software, so i have gone back to EAGLE and continued to get to like the GUI, it is fairly straight forward once your used it to, just it is very specific about component and footprints for pcb's and this slowed me down. Anyway below is the schematic completed of my breadboard design using an arduino, power circuit and ftdi usb converter. All future schematics will be drawn using EAGLE.



7. Close out as many issues as possible above, the list is beginning to grow to an unmanageable amount. (On Going)
Still working on this and within a few days all items above should be closed or paused until i have a clearer vision on how to develop each item.

My next steps are:
1. Investigate more inputs and outputs for the Arduino. (Continued from last time - placed on hold 03/12/11)
2. Look into more ideas of what i want to do with the Arduino for my project. (On Going)
3. Close out as many issues as possible above, the list is beginning to grow to an unmanageable amount. (On Going)


08/12/11

My next steps were:
1. Setup some testing of counting using a resonator and a crystal and see if the results match the theory above. (On Going - placed on hold 07/12/11)
Parts arrived now although nothing done, low priority.

2. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards. (On Going - Awaiting Parts)
FTDI IC's arrived and so did the adapter boards, a photo is below of my assembled FTDI IC on the adapter board, it was hand soldered and this is why it is a little untidy.



As can be seen in the photo i added 0.1" header pins on the edges so i could plug it into my breadboard like a normal IC, i connected the FTDI IC into my circuit as per the datasheet available at "http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232R.pdf" although a copy is also attached at the bottom. I connected the DTR into my reset circuit i made for the RS-232 converter circuit and the TX and RX into the Arduino. For the time being i have disconnected the RS-232 converter but left it in place on my breadboard encase i want to or need to revert back to it. I have left the power from the USB disconnected at present as i was unsure of the amount of power my circuit would draw; i have also swapped from PP3 batteries to a bench power supply. I can confirm i can program the Arduino using this USB to UART TTL converter, i am using Windows 7 and it automatically detected the FTDI chip and installed drivers for it without asking me.

See photo below of breadboard layout 4, showing the new USB to UART TTL converter in place.



I will add a parts list at the bottom, and upload the circuit shortly. i still need to look at activity lights, i will read the datasheet more as i noticed there is someone mentioned about this in it.

3. Investigate more inputs and outputs for the Arduino. (Continued from last time - placed on hold 03/12/11)
Remains untouched until I know exactly what I need to put on the board.

4. Look into more ideas of what i want to do with the Arduino for my project. (On Going)
Remains untouched.

5. Learn more about the language used to program the Arduino. (Continued from last time - placed on hold 03/12/11)
Remains untouched.

6. Need to find a way to display/present my schematics of my circuits on breadboard layouts. (On Going)
Started to create the components in the capture software, i hope to have a circuit for the arduino uploaded with the next update.

7. Close out as many issues as possible above, the list is beginning to grow to an unmanageable amount. (On Going)
As per last update.

My next steps are:
1. Setup some testing of counting using a resonator and a crystal and see if the results match the theory above. (On Going - placed on hold 07/12/11)
2. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards. (On Going - Look into activity and completing programming circuit)
3. Investigate more inputs and outputs for the Arduino. (Continued from last time - placed on hold 03/12/11)
4. Look into more ideas of what i want to do with the Arduino for my project. (On Going)
5. Learn more about the language used to program the Arduino. (Continued from last time - placed on hold 03/12/11)
6. Need to find a way to display/present my schematics of my circuits on breadboard layouts. (On Going)
7. Close out as many issues as possible above, the list is beginning to grow to an unmanageable amount. (On Going)


07/12/11

My next steps were:
1. Setup some testing of counting using a resonator and a crystal and see if the results match the theory above. (On Going - Awaiting Parts)
This has now been placed on hold for the time being until parts arrive, although I know a resonator will work it’s just a case of how accurate the resonator is at keeping time, previous research suggests they are not the best clock generating devices to use for a microprocessor, but in low cost situations where time keeping is not essential they are adequate.

2. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards. (On Going - Awaiting Parts, will look into UNO method)
After much research i have found that the IC used for programming the Arduino on the Arduino UNO boards has a high MOQ, the software/firmware used to program it is easily obtainable from the arduino website, but because of this high Minimum Order Quanity, i am not able to find some i can source and hence i am unable to get samples, even when i got a sample it comes in a QFD package which is a small square with the pins underneath the IC requiring specialist equipment to solder it to a prototype board. Considering the FTDI IC is the only viable solution at the moment i looked to making an adapter for the SSOP package, firstly i did some research on a well known search engine and found such adapter already exists to convert a SSOP-28 package to a DIP28 package, so i have ordered some, this will allow me to use the FTDI IC in a breadboard circuit. If the FTDI IC does not work i may have to reconsider a way to source samples of the Silicon Labs IC, see photo below of the adapter board i will use to mount the surface mount FTDI IC.



Once this section is completed, i have in effect recreated an Arduino UNO Board from scratch and the bulk of the initial development is complete as i have a working platform to build the new student targetted features onto.

3. Investigate more inputs and outputs for the Arduino. (Continued from last time - placed on hold 03/12/11)
Remains untouched until I know exactly what I need to put on the board.

4. Look into more ideas of what i want to do with the Arduino for my project. (On Going)
I have decided i want to build either a board or a shield to help new users to electronics learn about microprocessors using the Arduino platform. More than that currently I am not sure but I will continue to develop my idea into something stronger.

5. Learn more about the language used to program the Arduino. (Continued from last time - placed on hold 03/12/11)
Remains untouched.

6. Need to find a way to display/present my schematics of my circuits on breadboard layouts. (On Going)
I have created my first set of schematics for the RS-232 converter with auto reset function and power circuit, i will schematic for the Arduino shortly, as the component library does not include this so will need to add it myself, once its added i will add the complete schematics for each breadboard.



7. Close out as many issues as possible above, the list is beginning to grow to an unmanageable amount.
This is ongoing but i have made a substantial effort into closing open issues, once the development on the board is complete and i am confident i can produce a board from the building blocks (i.e Arduino only, programming circuit, power circuit etc..) i have created during my research and development i will focus more onto the student themselves, and what they need to get from the board, what it needs to do etc... from this i can then look at the second stage of development which is customizing my previous circuits to match the requirements/specifications of the students.

My next steps are:
1. Setup some testing of counting using a resonator and a crystal and see if the results match the theory above. (On Going - placed on hold 07/12/11)
2. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards. (On Going - Awaiting Parts)
3. Investigate more inputs and outputs for the Arduino. (Continued from last time - placed on hold 03/12/11)
4. Look into more ideas of what i want to do with the Arduino for my project. (On Going)
5. Learn more about the language used to program the Arduino. (Continued from last time - placed on hold 03/12/11)
6. Need to find a way to display/present my schematics of my circuits on breadboard layouts. (On Going)
7. Close out as many issues as possible above, the list is beginning to grow to an unmanageable amount. (On Going)


06/12/11

Today it was mentioned to me, that the files at the bottom were not linking correctly so i have spent most of my time updating them all, i have also re routed the photos so they no longer are stored on there old location.

Will do a normal update tomorrow.

05/12/11

My next steps were:
1. Setup some testing of counting using a resonator and a crystal and see if the results match the theory above. (On Going - Awaiting Parts)
Parts Ordered.

2. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards. (On Going, USB auto-reset function to investigate)
I added a cable to the pin on the CP2012 IC although found it did not function as first thought and can only guess when the CP2012 was prepared either not programmed correctly or the heat damaged the IC from the soldering, i have contacted FTDI and ordered some samples of their alternative, unfortunately it only comes in an SSOP-28 housing which is not suitable for use with breadboard so i need to make an adapter to be able to use it in a breadboard circuit. Not a problem but it will slow down my progress. I will look into how official UNO boards do it with the other Atmel IC although i feel it will take alot of research.

3. Investigate more inputs and outputs for the Arduino. (Continued from last time - placed on hold 03/12/11)
Remains untouched.

4. Look into more ideas of what i want to do with the Arduino for my project. (On Going)
Remains untouched.

5. Learn more about the language used to program the Arduino. (Continued from last time - placed on hold 03/12/11)
Remains untouched.

6. Need to find a way to display/present my schematics of my circuits on breadboard layouts. (On Going)
Have looked at Eagle as it seems to be the most popular schematic capture software for open source development, although i am not keen on its Graphical User Interface.

My next steps are:
1. Setup some testing of counting using a resonator and a crystal and see if the results match the theory above. (On Going - Awaiting Parts)
2. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards. (On Going - Awaiting Parts, will look into UNO method)
3. Investigate more inputs and outputs for the Arduino. (Continued from last time - placed on hold 03/12/11)
4. Look into more ideas of what i want to do with the Arduino for my project. (On Going)
5. Learn more about the language used to program the Arduino. (Continued from last time - placed on hold 03/12/11)
6. Need to find a way to display/present my schematics of my circuits on breadboard layouts. (On Going)
7. Close out as many issues as possible above, the list is beginning to grow to an unmanageable amount.


04/12/11

My next steps were:
1. Setup some testing of counting using a resonator and a crystal and see if the results match the theory below. (Awaiting Parts)
Will order parts tomorrow.

2. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards. (On Going, although believe the RS-232 port side to be completed)
More tests have been carried out with the RS-232 function, downloading and sending and receiving serial data, no issues have been found and must be approaching 50 downloads using this auto-reset circuit.
The USB to UART TTL converter arrived yesterday, it is based on a CP2012 IC by Silicon Labs, a photo of both sides of the converter is shown below:



I can download to the Arduino using it, but i cannot perform the auto-reset function with it, from looking at the back of the converter, it would suggest there is a reset, after a while of trying with failed attempts using this reset connection, i decided to download the datasheet for the IC on the converter and using a multi meter on continuity function check where this so called "reset" pin went, to discover it just resets the converter chip, a pointless connection in my opinion. The connection i actually need is a DTR (Data Terminal Ready), this is present on the CP2012 IC but left disconnected on the converter board!, I looked on the CP2012 manufactures website (Silicon Labs) to see if i could get some sample IC's in a different housing so i could make a breadboard circuit based on the same CP2012 IC. But because they are in US they will not ship samples to UK, although i did find what i believe to be an alternative from Future Technology Device International (FTDI) there alternative is the FT232R which seems to be an ideal replacement with the same function as the CP2012 although FTDI is a UK based company with worldwide coverage.

I have not given up hope with the CP2012 though and will try and solder directly to the CP2012 IC on the converter board, on the pin that is listed in the datasheet as the DTR pin, i am not sure i will be able to do this as it is a surface mount IC but I will give it a try.
I have not refused to consider the Atmel IC used on the UNO boards but due to the fact I wanted an off the shelf IC to help speed things up I may well indeed have to look into this option if there is no lead with FTDI. Just the thought of programming an IC to be able to program seemed a little ridiculous.

3. Investigate more inputs and outputs for the Arduino. (Continued from last time - placed on hold 03/12/11)
Remains untouched.

4. Look into more ideas of what i want to do with the Arduino for my project. (On Going)
Remains untouched.

5. Learn more about the language used to program the Arduino. (Continued from last time - placed on hold 03/12/11)
Remains untouched.

6. Need to find a way to display/present my schematics of my circuits on breadboard layouts.
I have National Instruments Multisim installed for other university related schematic capture, so i will look into using this to draw all my circuits although my initial impressions are that it does not have the components in the component library i have used in my circuits, which is a little irritating as it is one of the biggest schematic capture software companies and with that one of the most expensive. I will look into alternative solutions.

My next steps are:
1. Setup some testing of counting using a resonator and a crystal and see if the results match the theory above. (On Going - Awaiting Parts)
2. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards. (On Going, USB auto-reset function to investigate)
3. Investigate more inputs and outputs for the Arduino. (Continued from last time - placed on hold 03/12/11)
4. Look into more ideas of what i want to do with the Arduino for my project. (On Going)
5. Learn more about the language used to program the Arduino. (Continued from last time - placed on hold 03/12/11)
6. Need to find a way to display/present my schematics of my circuits on breadboard layouts. (On Going)


03/12/11

My next steps were:
1. Setup some testing of counting using a resonator and a crystal and see if the results match the theory above.
Have not managed to find a resonator, so will have to order one, but did some pre-testing with the crystal using a simple counter program, once the code is finalised i shall post it here.

2. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards. (On Going)
After much head scratching i decided i needed to modify the circuit from the arduino website "http://www.arduino.cc", using a multi-meter and an LED as an indicator from the DTR to ground, i measured the line again and wondered if the voltage was too strong into the arduino and thus making it an unstable reading. so connected a 1 k ohm resistor between the capacitior and ground. This improved things greatly but did not make it work every time, and so i thought i need to use the signal from the computer as a trigger not as the voltage to do the actual resetting of the arduino, so my next idea/thought was created which was to place a general purpose NPN transistor at the end of the line from the computer via a de-coupling capacitior. This so far seems to be the ideal solution with not even one failed download from a selection of arduino examples to writing this update, but i will persist to try and make it fail.

The transistor was connected as below:
COLLECTOR <- connected directly to ardunio reset pin.
DTR pin from RS-232 via 0.1uF capacitor to -> BASE
EMITTER <- connected directly to ground.
See below photo for a close up of the section on the breadboard.



I have added an updated parts list for the now breadboard layout 3 at the bottom in the attachments, My USB to UART TTL converter arrived today so i will try to set this up sometime tomorrow.

3. Investigate more inputs and outputs for the Arduino. (Continued from last time)
For the time being until my own breadboard based Arduino board is fully functional in comparison with a UNO board I will stop personal development on inputs and outputs.

4. Look into more ideas of what i want to do with the Arduino for my project. (Continued from last time)
As each day goes past i am considering more and more a student related development board, but currently i want to get the basic hardware finished so i am confident when i start programming exactly what i am addressing and how the electronics behind it is integrated into the board, Will it become an entire board or will it become a shield i am still to decide.

5. Learn more about the language used to program the Arduino. (Continued from last time)
For the time being until my own breadboard based Arduino board is fully functional in comparison with a UNO board I will stop personal development of the programming language.

My next steps are:
1. Setup some testing of counting using a resonator and a crystal and see if the results match the theory above. (Awaiting Parts)
2. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards. (On Going, although believe the RS-232 port side to be completed)
3. Investigate more inputs and outputs for the Arduino. (Continued from last time - placed on hold 03/12/11)
4. Look into more ideas of what i want to do with the Arduino for my project. (On Going)
5. Learn more about the language used to program the Arduino. (Continued from last time - placed on hold 03/12/11)
6. Need to find a way to display/present my schematics of my circuits on breadboard layouts.


02/12/11

My next steps were:
1. Investigate more inputs and outputs for the Arduino. (Continued from last time)
Need to spend more time on this.

2. Look into more ideas of what i want to do with the Arduino for my project. (Continued from last time)
Need to spend more time on this.

3. Learn more about the language used to program the Arduino. (Continued from last time)
Need to spend more time on this.

4. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards.
I have found if i use the additional circuit alteration from the link i posted yesterday for adding auto-reset function to an Arduino RS-232 board it isn’t always 100% successful and on some occasions will fail to download the program, I found with a multi-meter the DTR line is held high at +10Vdc until the Arduino software tries to download upon which after the compile message the line drops from +10Vdc to - 10Vdc for a second or so, upon which the Arduino should reset, but it doesn’t every time and sometimes fails the download because the Arduino did not reset correctly, I will look at this on an oscilloscope to try and understand the exact waveform and then try to work out a solution, although my USB to UART TTL converter should arrive shortly.

5. Look into resonator vs. crystal vs. internal oscillator.
I have joined a forum, (the link has been dliberately left out) and asked this exact question as I was confused, I have found out that the internal oscillator has limitations to 8 MHz although i don’t see it listed in the datasheet, The internal oscillator is susceptible to interference with temperature changes which affect its accuracy, and so I am happy as to why an external clock is used, so why a resonator or a crystal?

The different between a resonator and a crystal seems to be only the accuracy. People have said in general a crystal is better than a resonator as a resonator is typically only 0.5% accurate at time keeping whilst a quartz crystal can achieve 0.01% accuracy and so if I was to implement a time keeping device it simply wouldn’t keep time accurately using a resonator.

To put this in prospective if I create a digital time keeping clock using a resonator and another using a quartz crystal in theory if I am counting time over a month and a year…
60 Seconds @ 1 Minute
3600 Seconds @ 1 Hour @ 60 Minutes @ 60 Seconds
86400 Seconds @ 1 Day @ 24 Hours @ 60 Minutes @ 60 Seconds
2592000 Seconds @ 1 Month @ 30 Days @ 24 Hours @ 60 Minutes @ 60 Seconds
311104000 Seconds @ 1 Year @ 12 Months (30 Days) @ 30 Days @ 24 Hours @ 60 Minutes @ 60 Seconds

From this, based on the tolerances of the crystal and resonator:
After 1 Day the esonator should be approximately 7.2 Minutes out, the crystal should be approximately 8.64 Seconds out.
So from this, the resonator after 1 Month it should be approximately 3.6 Hours out, the crystal should be approximately 4.32 Minutes out.
And so finally the resonator after 1 Year it should be approximately 1.8 Days out, a scary thought indeed, on contrast the crystal should be approximately 51.84 Minutes out.

As i am not able to find any evidence to back this up i will arrange to build another breadboard but this time using a resonator, then run a counter program on both external clocked Arduinos and see how far they drift apart over a set time period. If the values above are accurate I guess the values shall start to drift fairly quickly and I won’t need to wait a year!!!. Now only to decide what to use as a reference…


My next steps are:
1. Setup some testing of counting using a resonator and a crystal and see if the results match the theory above.
2. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards. (On Going)
3. Investigate more inputs and outputs for the Arduino. (Continued from last time)
4. Look into more ideas of what i want to do with the Arduino for my project. (Continued from last time)
5. Learn more about the language used to program the Arduino. (Continued from last time)


01/12/11

My next steps were:
1. Investigate more inputs and outputs for the Arduino. (Continued from last time)
I connected a speaker to the Arduino breadboard circuit and downloaded the melody tone from the example library; it works perfectly as described in the examples header. Speaker can be seen in photo in point 3 of this update.

2. Look into more ideas of what i want to do with the Arduino for my project. (Continued from last time)
I have been wondering about making something to help lecturers teach students about microprocessors using the Arduino platform from its simplicity and the fact it is open source means things can be made in the classroom/lab without breaking any laws, for example bootloader copyright protection etc... Furthermore it is cheap, excellent value and the support communities for it is truly breathe taking. There is no current compatible Arduino board from the list i added in a previous update and thus a great opportunity to push the Arduino even further into education.

Most Arduino users buy shields (add-ons) or compatible boards to learn about the programming side of the components on the shield/compatible board without the concern or worry of building the actual circuit, for example there are Bluetooth shields, motor controller shields, temperature sensing shields, wifi shields etc… There is simply a shield for nearly everything you could want to do with an Arduino except teach someone how to use it with simple and basic inputs and outputs; LED’s for example are a very underrated output and to new users they are fascinating to see turn on and off based upon the program a student has written.

3. Try to get the Arduino programmed using one of the methods above.
Massive breakthrough, found a MAX-232 IC and a made the circuit as per the circuit diagram below, linked up the UART TTL TX and RX lines to the Arduino in the correct pins (2 and 3), using the pin map listed in a previous post. I put a 1k ohm resistor in series with each signal line as the circuit diagram for the UNO does this. I also found from reading more on the Arduino website "http://www.arduino.cc" that a RS-232 board was released some time ago, even so i have found a schematic for it and here is a link to it "http://www.arduino.cc/en/Main/ArduinoBoardSerial" . I have also attached it at the bottom encase the link disappears. The Arduino RS-232 board uses two transistors and an arrangement of diodes and resistors to perform the same function as the MAX-232 IC and so i will look at this method also as it is a cheaper circuit to produce.

Whilst I can program the Arduino board using the circuit i made, it does have some draw backs these are that you have to hold down the reset button until the compile message appears otherwise the download fails. From reading more on the Arduino website i have found at this link “http://www.arduino.cc/playground/Learning/AutoResetRetrofit” you can use the DTR from the RS-232 connection to reset the Arduino, i haven't done this yet although will investigate it. There are also no activity lights currently so it’s hard to determine when data is being sent or received which on the UNO board is signified by LEDs. So i will look into this further.

A photo is below of the breadboard 2 layout and a parts list is attached at the bottom in a PDF format.



A close up of the RS-232 to UART TTL circuit section of the breadboard is shown below



4. Learn more about the language used to program the arduino.
I have not done much on this and so will try to look at this sometime in the future.

5. Learn more about the components used in the breadboard layout.
I looked into a resonator instead of a crystal and two load capacitors to lower the component count and shrink the footprint of the final circuit, although there must be a reason why commercial Atmel based products and all the official Arduino boards use a crystal. It is not cost as resonators are half the price of the crystal circuit components. Additionally there is an internal oscillator inside the Atmega168 processor according to the datasheet located at this link “http://atmel.com/dyn/resources/prod_documents/8271S.pdf” and a copy is attached at the bottom. My current thought is so why is this disabled! If this was used there would be no need for an external clock source completely removing the need for additional cost and footprint size. There must be something simple I am missing…

My next steps are:
1. Investigate more inputs and outputs for the Arduino. (Continued from last time)
2. Look into more ideas of what i want to do with the Arduino for my project. (Continued from last time)
3. Learn more about the language used to program the Arduino. (Continued from last time)
4. Try to get a Arduino programming method with an auto reset function in the breadboard like in UNO boards.
5. Look into resonator vs. crystal vs. internal oscillator.


30/11/11

My next steps were:
1. To get a USB to UART TTL / RS-232(COM) to UART TTL converter and try to program the Arduino in the breadboard circuit.
I looked into these options simply with a search on the internet to find out the feasibility of it, it seems there is 2 real ways to do it and a 3rd that i have come up with and will try although not a final solution, the ways are listed below.

a) USB to UART TTL converters, i have found one on a well known auction site for £1.80 and ordered it, it should arrive shortly. It is a breakout version with no housing hopefully I can learn something from the electronics used for the conversion.

b) RS-232 to UART TTL converters, on my search i only really found DIY solutions which are not a problem but may just take more time unless I can find the components lying around. The circuit I choose to make was from this link “http://sodoityourself.com/max232-serial-level-converter/” based on MAX-232 IC.

c) Adapt the UNO board with some wires in the RX, TX outputs to the pins on the Arduino with a shared ground, not a final solution i know but it will let me see if i can program the Arduino in the breadboard in the short term. This will in effect make the UNO board a expensive USB to UART TTL converter for the time being but hopefully will prove a point, This is my idea and only a guess!

2. Investigate more inputs and outputs for the Arduino.
Looked into other forms of inputs and outputs, have found an old speaker and a stepper motor so will try to interface them to the Arduino and see if i can control them using the Arduino. As for inputs I do not really have any so will have to see what I can integrate from the examples and tutorials and get a selection to the play with.

3. Look into more ideas of what i want to do with the Arduino for my project.
I am finding learning about the Arduino really fun but finding it very annoying when i find i am missing a certain component which I require continue my learning, although i have the UNO boards i haven't really done much programming, only what i did the other day with the LED chaser, I’ve began working through the examples and this is when the need for more components is arising. Have thought about doing a communication system between two or more Arduino's although again there is not really much need for one and there is plenty of solutions out there from reading the compatible list additionally it would not solve a problem so the idea is going to be put to one side.

4. Upload list of parts for the breadboard circuit.
This has been uploaded at the bottom as a PDF, all parts came from a worldwide mail-order electronic component stockist.

My next steps are:
1. Investigate more inputs and outputs for the Arduino. (Continued from last time)
2. Look into more ideas of what i want to do with the Arduino for my project. (Continued from last time)
3. Try to get the Arduino programmed using one of the methods above.
4. Learn more about the language used to program the arduino.
5. Learn more about the components used in the breadboard layout.


29/11/11

My next steps were:
1. To create a minimal running Arduino microprocessor on a breadboard to help understand the build up of the circuit on the UNO Board, next try to get the blink example program provided in the Arduino programming environment running (Pre-Programmed on the Official Arduino UNO board).
I used an image of the Arduino pin out to help me when building the breadboard circuit, the link for it is "http://arduino.cc/en/uploads/Hacking/Atmega168PinMap2.png" although i have also attached it here just in case the link disappears.



To do this i used the schematic and created a circuit on breadboard,(see photo above), i have tested it and it does indeed run "Blink" example from the Arduino Programming Environment, I have added a 7805 5v regulator circuit to ensure the voltage is stable to the Arduino, the Green LED is just to show the circuit is powered.

2. Understand how the Arduino is programmed and how it works for possible integration onto breadboard circuit.
After reading of this Arduino page "http://arduino.cc/en/Main/ArduinoBoardUno" i have found the Arduino is programmed serially, although uses a UART protocol or TTL logic serial communication, The UNO boards have an onboard USB to UART converter, which then connects to the Arduino in effect being two circuits on one board. Because it is UART I cannot just use an RS-232 (COM) port on a computer as it uses different logic levels, and so these will also need to be converted to UART TTL logic before connection to a Arduino for programming. Currently i do not have a way to communicate with my breadboard as i do not have any USB to UART TTL or RS-232 (COM) to UART TTL converters.

3. Decide what i want to do with the Arduino for my project.
Still not entirely sure although i have many ideas coming into my head, from the physical hands on enjoyment i am having i would like to make my own compatible board although i am not sure what purpose or function it will fulfil, i considered an SD card based data logger, although do not entirely see a market for it and would mainly be just for fun on my part and the entire point of a project is to solve a problem, as stated in the PRINCE2 Manual. This said there is so much opportunity for a compatible board to be developed. But what does the market need, where is the hole in the market? I have attached a list of all the current Arduino Compatible boards available which was taken from "http://jmsarduino.blogspot.com/2009/03/comprehensive-arduino-compatible.html ".

My next steps are:
1. To get a USB to UART TTL / RS-232(COM) to UART TTL converter and try to program the Arduino in the breadboard circuit.
2. Investigate more input and outputs for the Arduino.
3. Look into more ideas of what i want to do with the Arduino for my project.
4. Upload list of parts for the breadboard circuit.


28/11/11

My next steps were:
1. Investigate analogue inputs.
I have connected a Potentiometer onto one of the analogue inputs and used it to control the speed at which some LED's chased on the digital outputs. (See photo below)

This photo shows the LED's connected to the Arduino, as the pot is turned the speed of which the LED's chase increases or decreases accordingly.

I have also posted a video of this on youtube at (sorry about poor quality)
"http://www.youtube.com/watch?v=Qv6qrop4Nd8"

Furthermore I have also uploaded the code to this journal, (although it was thrown together quickly to learn about analogue inputs and display its input on the output), there is always room for improvement and i guess i could use a loop to reduce the amount of memory used on the processor, in summary there is an LED connected to outputs 13, 11, 9, 7, 5, 3 and 100K Pot connected to Analogue input pin4.

2. Try to use serial communication for remote control of the UNO board.
Using the sample code provided by Jeremy Blum at "http://jeremyblum.com/2011/02/07/arduino-tutorial-6-serial-communication-and-processing/" I have managed to be able to turn some LED's on and off using the serial port and hyper terminal and then able to change the colour of my screen using the Pot as in Jeremy's tutortial. This has taught me about the basics of serial communication using the Arduino software on a microprocessor. I didn't feel there was a need to upload a photo or video of this as i just copied exactly what Jeremy Blum did in his tutorial. The code can be downloaded from his website and a youtube video of how to implement it is also located there.

3. Look at how the circuit is built up to make the complete UNO board (with the surface mount components it looks a little daunting).
After some looking on the Arduino website "http://www.Arduino.cc/" i have found a schematic for the UNO board (attached to this journal), from looking at this, it seems the actual circuitry involved to run the microprocessor is very little only requiring a crystal, grounding caps and power, the reset switch is a nice thing to have yet not essential to the operation of the processor. I feel the closer i am with the components the more i will understand the electronic circuit around it.

My next steps are:
1. To create a minimal running Arduino microprocessor on a breadboard to help understand the build up of the circuit on the UNO Board, next try to get the blink example program provided in the Arduino programming environment running,
2. Understand how the Arduino is programmed and how it works for possible integration onto breadboard circuit.
3. Decide what i want to do with the Arduino for my project.


27/11/11

I choose an Arduino based project for my final year project, although before i could decide my actual project I decided to have a look at the Arduino platform and have a play to learn the basics of the way Arduino software interfaced with the Atmel microprocessor.

I ordered two Arduino UNO boards from a well known auction site, as this seemed to be the most popular Arduino board and location to get them from.
One came from a far-eastern manufacture and is of very poor quality, see photos below. The other board came from Italy, a genuine board made by the official Arduino board manufacturer.

Far Eastern Arduino Compatible Uno Board



Official Arduino Uno Board



Not only is there a quality difference in look, but also feel, the components are not as well soldered on the PCB and there are some dry joints (see photos above), I would imagine that the CE and FCC has also been made invalid from the alterations the far eastern manufacture has made to the board.

The difference in price between the two was minimal less than £5, i am glad i recieved the official board first, as if i had recieved the far eastern alternative first i would have been extremely dissappointed.

This said both boards do program and both seem to work fine, so far i have only connected a few LED’s to the outputs and made them flash using the example programs in the programming environment.

My next steps are:
1. Investigate analogue inputs.
2. Try to use serial communication for remote control of the UNO board.
3. Look at how the circuit is built up to make the complete UNO board (with the surface mount components it looks a little daunting).
Attachment Timestamp Size
boards_Arduino1.0.1.txt 2012-06-04 09:24 12.99 KB
Gantt_Timeline.pdf 2012-05-29 17:54 290.61 KB
boards.txt 2012-05-27 04:46 13.4 KB
Student_Arduino_Prototype_PackagingR3.pdf 2012-04-18 17:23 367.53 KB
Student_Arduino_MacOSX_Drivers.dmg 2012-04-16 15:43 420.74 KB
Student_Arduino_Prototype_PackagingR2.pdf 2012-04-14 07:35 36.94 KB
Student_Arduino_Prototype_Packaging.pdf 2012-04-11 07:42 38.55 KB
Prototype_Sign_Off_R1.pdf 2012-04-05 12:49 633.39 KB
Prototype_Electrical_Data_R1.pdf 2012-04-02 13:37 1.59 MB
ftdichip.lbr 2012-03-06 18:24 16.16 KB
Member_11337__Timer_Code.pde 2011-12-12 20:10 949 Bytes
BreadboardLayout4Partslist.pdf 2011-12-08 19:12 3.62 KB
DataSheet_FT232R.pdf 2011-12-08 19:02 776.15 KB
arduino_rs232_v2.png 2011-12-06 18:13 27.77 KB
ArduinoCompatiableBoardList-291111.pdf 2011-12-06 17:52 140.36 KB
BreadboardLayout3Partslist.pdf 2011-12-06 17:48 6.3 KB
BreadboardLayout2Partslist.pdf 2011-12-06 17:47 3.66 KB
BreadboardLayout1Partslist.pdf 2011-12-06 17:46 39.56 KB
Atmega168 Datasheet.pdf 2011-12-01 17:22 489.39 KB
Atmega168PinMap.png 2011-11-29 15:44 125.51 KB
Member_11337___LED_Chase_with_Pot.pde 2011-11-28 15:12 3.77 KB
arduino-uno-schematic.pdf 2011-11-28 09:28 32.73 KB