Following up from today’s Hack-A-Day post about development boards, I looked further into the Teensy platform and the chip they use. There is a “teensyduino” model which is compatible with the arduino platform. The impressive thing is, they use ATMEGA32U4 chip manufactured by Atmel.

The details of the chip are as below:

Specification Teensy Teensy++ Arduino
Processor ATMEGA32U4 AT90USB1286 ATMEGA328
Flash Memory 32256 130048 30720
RAM Memory 2560 8192 2048
EEPROM Memory 1024 4096 1024
Total I/O 25 46 20
Analog Inputs 12 8 6
PWM (Analog Out) 7 9 6
USB Port 1 1 (serial only)

 

 

 

 

 

 

The more impressive thing is that this chip(32U4) is priced at AU$7.50, whereas the ATMEGA328 is priced at $AU$9.80.

Now if you are using the 328 in a USB project, you then have to buy an FTDI chip which is another AU$7.90, so you are paying twice the price to use an inferior chip.

In the coming days, I will be designing a prototyping board that is arduino compatible(if possible) and it will appear on the proto-AVR website.

After a long summer, Proto-AVR is finally ready for release. This version is compatible with ATMEGA48/88/168/328. There is limited support for ATMEGA1280/2560.

All known bugs have been fixed, if any are found you are welcome to comment below and I will attempt to fix them for the following release. If there are any speed/space savings you can see, please post them below as well.

Note: Any interrupt functions will not work for AMTEGA48/88 as the vector names are currently incorrect.

The following core libraries are in this version:

  • Analog Read/Write
  • C character functions
  • Digital Read/Write
  • EEPROM Read/Write
  • Hardware Serial
  • INT and PCINT
  • Power Reduction
  • Serial Printing helpers
  • Basic math helpers
  • Pulse In/Out
  • Time functions

Using the libraries

The libraries are written in C++, so they will not compile in AVR-Studio. Currently the best way to compile files is using Eclipse C++, with the AVR plugin. A demonstration project with blinking lights is currently presented. The best way to use the libraries is with an Arduino board. The AVR plugin does not like programming with ISP….well not in its current configuration.

Download

Eclipse C++: http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/heliossr1

AVR plugin: Go to Help –> Install new software and copy in the link below and follow the prompts.

http://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download

The libraries:

http://blog.michael-kehoe.com/wp-content/uploads/2011/02/V1.zip

Final

Please enjoy the libraries and I’m always looking for feedback!

I am pleased to say that from today, work has commenced on the second version of proto-AVR libraries. The following functions will be added to the core library:

  • TWI functionality
  • SPI functionality
  • PWM(motor control) functionality

From now we will also support non-core libraries. These libraries can be written by anyone, and once they have been tested(and possibly modified), they will be published on our website.

The following non-core libraries will be supported:

  • TerminalEmulation – manipulating the terminal colours, fonts, cursors etc
  • SoftwareSerial – A software UART for any pins on the Proto-AVR/ Arduino/ Wiring boards
  • NMEA parser – library for passing GPS data

In addition we will be investigating the possibility of adding our own Firmata and LCD libraries to the non-core libraries.

More details will added to this blog about submitting non-core libraries to us.

Good news! V0.9 of the Proto-AVR firmware library is ready for ATMEGA-48/88/168/328. Note that some power functions may not be available on the XXXP devices.

In the coming weeks, I will be porting the library to AMTEGA-1280/1281/2560 micro-controllers. In general, this should not be a problem, as we are only making available extra timers and IO ports.

The Proto-AVR hardware boards are being sent to manufacturing in the next 5 days. Once they have been manufactured and assembled, designs and photo’s will be released. The list of boards is:

  • Target Board(ATMEGA-48/88/168/328)
  • TargetBoard(ATMEGA-2560)
  • Proto-duino Board(Arduino through-hole board)
  • Power Board
  • UART Board
  • Storage Board(Dataflash/SD/MMC)
  • Sensor Board
  • GPS/Accelerometer/Compass Board

As for the release of the firmware library, this will happen by the end of February. I need to complete testing of the firmware before it is publically released. I want to ensure that we have a bug-free release(it should be noted, that even in the latest release of Arduino, there is bug’s, especially in the tone libraries).

The Proto-AVR Power Board is a shield board that can be used with the Proto-AVR boards or as a stand-alone board for other electronics projects.

The board allows for the user to:

  • Plug and play 3-pin voltage regulators
  • Automatically select the best power source
  • Use different power sources(USB, DC Power Jack, Screw Terminal….)
  • Plug and play with Proto-AVR and Arduino boards
  • Easily measure current use(using a multimeter)

TSo it has been awhile since I have posted, so I thought I should let you all know how I am going:

Since I last posted, the following have been completed:

  • All Interrupts
  • Pulse In/Out
  • Shift In/Out
  • Timer functions

The following are left to do:

  • Tone(half completed)
  • SPI/TWI
  • PWM for LED’s/Motors

The following hardware will be designed this week:

  • Power board
  • Target board
  • Proto-duino
  • Sensor board
  • UART/USB board

Hey all,

It’s been awhile since I’ve posted so I should tell you about the Proto-AVR libraries and their development to date:

Currently the libraries support the following:

  • Analog reading(ADC)
  • Character functions (e.g IsAlpha(char c)
  • Digital read/write
  • EEPROM storage and retrieval
  • Serial/UART
  • Interrupts for INT0/1
  • Power saving methods
  • Special library for printing UART data(including floating point numbers)
  • Simple math functions
  • Simple time conversion

In the next week or so, I will be looking to add the following functionality

  • Pulse in/out
  • Shift In/Out
  • SPI interfacing
  • TWI interfacing
  • Tone
  • Timer functions

To date, the code library is very space efficient and reasonably speed efficient. Many of the Arduino-like functions have been (re)written and provide user’s with more flexibility and functionality.

For any of you who follow this blog, you would know about the Arduino platform and how versatile it is. The problem with it(the software/firmware) is, that it:

  • Dumb’s the user down
  • Has performance issues
  • Very large code size

Do not think that I am against Arduino or its contributers, I think it is a great platform, however, it could be much better.

Proto-AVR is a newly designed platform of software AND hardware that will be more versatile, more powerful and more efficient. It can be used for teaching, prototyping or professional applications and will prove to be a game changer in terms of 8-bit micro-controller applications.

Software

Currently the Arduino/Wiring libraries take up an extraordinarily large amount of space on the micro-controller making users use more expensive micro-controller’s even for simple projects. The Proto-AVR libraries are designed to be more modular, written more efficiently and will be easier for user’s to understand and modify. The software will support: ATMEGA88/168/328 & ATMEGA128/1281/2561.

Hardware

Proto-AVR will have specially designed Arduino compatible boards that will prove more versatile than the ordinary Arduino main boards and 3rd party clones. There will be two main boards available: Proto-AVR & Proto-AVR Pro. Both boards will have IC socket’s that will allow for micro-controllers to be quickly inserted and removed.

Stay tuned for updates.

Hey!

My name is Michael Kehoe. I am an Electrical Engineering Student at the University of Queensland(Australia). I will be using this blog to post my own projects, ideas that I come across and hopefully a weekly wrap of all the cool posts I have seen during the week

© 2011 Michael-Kehoe Suffusion theme by Sayontan Sinha