Show Posts
Pages: 1 ... 3 4 [5] 6 7 ... 30
61  Development / Other Software Development / Re: Cosa: An Object-Oriented Platform for Arduino programming on: May 03, 2014, 03:09:20 pm
Some news on the latest Cosa updates:

1. SR3W
New three wire SPI device driver that supports cascaded shift registers. Uses MOSI, SCK and CS.
https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/SPI/Driver/SR3W.hh
https://github.com/mikaelpatel/Cosa/blob/master/examples/Sandbox/CosaSR3W/CosaSR3W.ino

2. Faster SPI block transfer
Two new SPI member functions (transfer_start/await) to allow faster SPI transactions with interleaving of SPI transfer and processing (e.g. fetch next data element, calculate check sum, etc).
https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/SPI.hh#L205
https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/SPI.cpp#L229

3. SD/FAT16 performance improvement
Using the new SPI member functions to improve the SD and FAT16 performance. Example below:
https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/SPI/Driver/SD.cpp#L135

4. Documentation
Circuit descriptions added to source code documentation. Some examples:
https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/LCD/Driver/HD44780.hh#L734
https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/Board/ATtinyX5.hh#L43
https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/OWI/Driver/DS18B20.hh#L31

Cheers!
62  Development / Other Software Development / Re: Cosa: An Object-Oriented Platform for Arduino programming on: April 29, 2014, 01:29:12 pm
A short update on introducing AVR Toolchain with GCC 4.8.1 and using link time optimization. Below are build statistics for some of the Cosa example sketches (Arduino UNO, program storage space/dynamic memory). Left column for Arduino 1.5.6 (http://arduino.cc/en/Main/Software#toc3) and the right column Arduino Nightly Build with GCC 4.8.1 (https://groups.google.com/a/arduino.cc/forum/#!msg/developers/21G5w2HbUOg/-aH8wQJP6x8J).
Code:
                    1.5.6-r2     4.8.1+lto
Empty Sketch         210/0        154/0
CosaBenchmarkPins    18010/420    13402/451
CosaBlink            1060/21      904/18
CosaBlinkMinimal     266/2        194/0  
CosaCanvasST7735     19790/600    17120/629
CosaSNMP             20936/662    17456/697
CosaMQTThumidity     17528/575    15072/674
CosaThingSpeakClient 23452/989    20884/1046
CosaHD44780          5662/149     4964/196

This gives an idea of the program size reduction. There is also an improvement in performance.

Cheers!
63  Development / Other Software Development / Re: Cosa: An Object-Oriented Platform for Arduino programming on: April 27, 2014, 03:05:43 pm
WOW! I am glad I found Cosa!
A huge amount of quality work in those libraries.
THANK YOU!
Thanks for your interest in Cosa. Please feel free to use the github issue list for suggestions, improvements, bugs, etc. https://github.com/mikaelpatel/Cosa/issues?state=open

On the issues list you can also find what I am working on right now (items marked backlog). The latest focus has been on 1) improving documentation and coding style to further enhance using embedXcode. and 2) adapting for the new avr toolchain (gcc 4.8.1).

Cosa has its own platform.txt file with compiler and tools options. The build enables all warnings from the compiler (-Wall and -Wextra). This is to improve code quality and get as much support from the compiler as possible. The goal is to keep Cosa "compiler warning clean" at all time.

With the latest update the Cosa build uses link time optimization (-flto). Together with some improvements the Pin classes are now even faster with Output::toggle() as fast as 62 ns (@ 16 Mhz). Details from the benchmarking can be found in the benchmark sketches; https://github.com/mikaelpatel/Cosa/tree/master/examples/Benchmarks, and for the Pins classes; https://github.com/mikaelpatel/Cosa/blob/master/examples/Benchmarks/CosaBenchmarkPins/CosaBenchmarkPins.ino#L530

Cheers!
64  Using Arduino / Microcontrollers / Re: attiny 85, any pointers?/ on: April 27, 2014, 02:46:50 pm
Have you checked out the 'new breed' of Pro mini yet? Is there a pin layout drawing of this new version available?
I have several of the old style and would like to try a ISP friendly version, so I guess I'll order a couple also.
Lefty
Found this image that might help.

Cheers!
65  Development / Other Software Development / Re: Cosa: An Object-Oriented Platform for Arduino programming on: April 22, 2014, 03:29:42 pm
The Cosa Soft UART is now completed. An interrupt driven receiver has been added. Verified for 57600 bps on Arduino Nano (ATmega328) and 38400 bps on ATtiny84 with internal 8 MHz clock.

Example sketch: https://github.com/mikaelpatel/Cosa/blob/master/examples/UART/CosaSoftUART/CosaSoftUART.ino
Interface: https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/Soft/UART.hh

Cheers!
66  Development / Other Software Development / Re: Cosa: An Object-Oriented Platform for Arduino programming on: April 19, 2014, 09:10:59 am
I use Arduino 1.0.5. on Windows 7
The path of sketches is "D:\sketchbook"
I have unzip "Cosa" in this path "D:\sketchbook\hardware\Cosa"
That looks fine so then we are back to the board setting. It has to be one of the Cosa prefixed boards otherwise the compiler will not be able to find the correct setting and will not use the correct include path.

See the footer in the IDE window. You need that setting. Double check the installation so that you have not accidentally added a folder level. The Cosa directory should contain a bunch of files and the cores directory.  

Cheers!
67  Development / Other Software Development / Re: Cosa: An Object-Oriented Platform for Arduino programming on: April 19, 2014, 08:37:13 am
I guess you mean "Cosa Tiny (ATtiny84, 8 MHz internal clock)". In that case you have not installed correctly. What is the path to the install directory?

Cheers!
68  Development / Other Software Development / Re: Cosa: An Object-Oriented Platform for Arduino programming on: April 19, 2014, 08:21:26 am
My guess is that you have not selected the correct board. You need to select one of the Cosa Arduino boards. See the Tools>Boards menu in the Arduino IDE.

Cheers!
69  Development / Other Software Development / Re: Cosa: An Object-Oriented Platform for Arduino programming on: April 14, 2014, 04:35:52 pm
Some news on the latest updates:

1. Improved documentation
The on-line documentation (web/embedXcode) has been extended with circuit illustrations. Below are a few examples:
http://dl.dropboxusercontent.com/u/993383/Cosa/doc/html/dc/d6e/classST7735.html#friends
https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/Canvas/Driver/ST7735.hh#L39
https://github.com/mikaelpatel/Cosa/blob/master/examples/Canvas/CosaCanvasHCSR04/CosaCanvasHCSR04.ino#L23
The class documentation has also been restructured to improve readability.

2. Improved LCD 4-bit adapter
The Cosa LCD (HD44780) 4-bit parallel adapter may be used with all boards supported by Cosa. The LCD keypad shield works correctly on Uno, Mega, Leonardo, etc.
https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/LCD/Driver/HD44780.hh#L297
https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/LCD/Driver/HD44780_IO_Port4b.cpp

3. LCD horizontal and vertical bars
New example sketches that shows how to implement horizontal and vertical bars for progress indication or value.
https://github.com/mikaelpatel/Cosa/blob/master/examples/LCD/CosaLCDvbar/CosaLCDvbar.ino
https://github.com/mikaelpatel/Cosa/blob/master/examples/LCD/CosaLCDhbar/CosaLCDhbar.ino

4. Additional footprint reduction
Fine tuning of the Cosa startup code and classes to reduce the footprint.

5. Input/OutputPin optimizations
Additional optimization of the Cosa Input- and OutputPin classes to allow speedup X3-X10 compared to Arduino digitalRead/Write. See Cosa Benchmarks.
https://github.com/mikaelpatel/Cosa/blob/master/examples/Benchmarks/CosaBenchmarkPins/CosaBenchmarkPins.ino#L529

6. Circuit descriptions
Circuit descriptions are available in device header files, doxygen documentation and in example sketches.

Cheers!
70  Development / Other Software Development / Re: Arduino on Xcode Project — Official Thread on: April 08, 2014, 01:31:49 pm
Have you considered other platforms?
Please see my answers here smiley

Cheers!
71  Development / Other Software Development / Re: Cosa: An Object-Oriented Platform for Arduino programming on: April 08, 2014, 01:28:41 pm
Have you considered other platforms?
Yes! I get this question a lot and have considered porting Cosa to other hardware platforms. Cosa is 100+ KLOC commented multiple AVR MCU core with 100+ example sketches. And with over 1000 development hours put into it. Porting to Due or other popular boards such as Launchpad takes 200-300 hours development and then lots of hours regression testing. With this in mind there would need to be a larger community and interest for such an undertaking.

Moving to "larger" boards such as the 32-bit Due/SAM would require even more structure; a RTOS with HAL, and interfaces for device drivers and other hardware resources. Getting this right is important to allow scaling.

Cheers!
72  Development / Other Software Development / Re: Arduino on Xcode Project — Official Thread on: April 07, 2014, 07:57:12 am
@avenue33

This looks great and very much what I was hoping for with the Xcode platform.

The hours of pushing an industry strength programming style, object-orientation and rich documentation is now starting to pay off. This is a quantum leap compared to the Arduino/Wiring core code base.

Getting documentation direct and the list of member functions when typing helps a lot when learning a large object-oriented platform as Cosa.

Nice work!

73  Development / Other Software Development / Re: Arduino on Xcode Project — Official Thread on: April 07, 2014, 07:03:40 am
@avenue33

With the latest Cosa update I understand that you have got the Xcode code-sense work. Does this mean that the Cosa documentation is now available as pop-up boxes? As all member functions are fully documented with the doxygen-style this would give a major advantage when learning to use the Cosa classes. Most of the Arduino/Wiring code base is not documented in this style.

Are there any code-sense specific tags that can be used to improve documentation?

Also does the code-sense also handle auto-completion?

Cheers!
74  Development / Other Software Development / Re: Cosa: An Object-Oriented Platform for Arduino programming on: April 07, 2014, 07:02:25 am
@avenue33

With the latest update I understand that you have got the Xcode code-sense work. Does this mean that the Cosa documentation is now available as pop-up boxes? As all member functions are fully documented with the doxygen-style this would give a major advantage when learning to use the Cosa classes. Most of the Arduino/Wiring code base is not documented in this style.

Are there any code-sense specific tags that can be used to improve documentation?

Also does the code-sense also handle auto-completion?

Cheers!
 
75  Development / Other Software Development / Re: Cosa: An Object-Oriented Platform for Arduino programming on: April 04, 2014, 03:18:59 pm
I managed to get the .hh files recognized as C++ header files by Xcode. So question answered.
@avenue33

Nice! The comment about using the issue handling of github is that it better supports dialog. This is often lost if a new topic is not created on the forum. Also after time the topics often become multi-purpose.

It does not have to be a trouble report for an issue. I like to use it also for new features, discussing design, etc. As the issue tracking is integrated with github there is a lot of benefits such as linking to commits, lines of code, other issues, etc. But the most important is keeping the dialog intact and you get attention ;-)

Appreciate your efforts!

Cheers!

[Update: Link to issue on github, https://github.com/mikaelpatel/Cosa/issues/146]
Pages: 1 ... 3 4 [5] 6 7 ... 30