Go Down

Topic: Cosa: An Object-Oriented Platform for Arduino programming (Read 98 times) previous topic - next topic


And I could help you a bit - without obligations from your side - by solving your first problem in getting some modules if you want...

That would help ;-). The RFM69 was not (yet?) a very popular wireless module on ebay. Actually more or less a single US based seller.

Yep, there seems to be just one US based seller of these modules who doesn't even sell the 868MHz EU versions...

If you PM me some address, and wait some days (probably a few more due to new year), you should be able to welcome a few modules in their new home in 2014  ;)


I just wanted to pass along a huge THANK YOU for all of your amazing work on Cosa.  I have been using your framework exclusively for all my projects and have really enjoyed watching the mind-boggling progress over the past year.  I also wanted to thank you specifically for taking time to trouble-shoot and answer some of my elementary questions as I greatly appreciate it!  How can I buy you a beer?



Many, many THANKS back to you and all for testing and support this project. Without your effort testing different parts of Cosa it would not have evolved as much as it has. Your questions help improve documentation, abstractions and give a better understand for typical usage patterns - not to mention all the encouragements!

Great year with a lot of fun. Hope to be able to find as much time next year and continue the work on the blog, more demo code and documentation.

Cheers! And a Happy New Year.


Jan 05, 2014, 08:14 pm Last Edit: Jan 06, 2014, 02:02 am by kowalski Reason: 1
Cosa is approaching a first major release. It contains over 150 classes and over 30 SPI/TWI device drivers (35+ KLOC in total). Below is a complete list of classes (without internal implementation classes). These range from object-oriented Digital and Analog Pin abstractions to Wireless devices and application frameworks.  
Code: [Select]

BitSet.hh:class BitSet
Button.hh:class Button
Canvas.hh:class Canvas
Canvas.hh:  class Context
Canvas.hh:  class Element
Ciao.hh:class Ciao
Ciao.hh:  class Descriptor
EEPROM.hh:  class Device
Event.hh:class Event
Event.hh:  class Handler
ExternalInterrupt.hh:class ExternalInterrupt
Fai.hh:class Fai
Fai.hh:  class Descriptor
FixedPoint.hh:class FixedPoint
FSM.hh:class FSM
Interrupt.hh:class Interrupt
Interrupt.hh:  class Handler
IOBuffer.hh:class IOBuffer
IOStream.hh:class IOStream
IOStream.hh:  class Device
IOStream.hh:  class Filter
IR.hh:class IR
IR.hh:  class Receiver
Keypad.hh:class Keypad
Keypad.hh:class LCDKeypad
LCD.hh:class LCD
LCD.hh:  class Device
LED.hh:class LED
Linkage.hh:class Linkage
Linkage.hh:class Link
Linkage.hh:class Head
Listener.hh:class Listener
Menu.hh:class Menu
Menu.hh:  class Action
Menu.hh:  class Walker
Menu.hh:  class KeypadController
Menu.hh:  class RotaryController
OWI.hh:class OWI
OWI.hh:  class Driver
OWI.hh:  class Search
Periodic.hh:class Periodic
PinChangeInterrupt.hh:class PinChangeInterrupt
Pins.hh:class Pin
Pins.hh:class InputPin
Pins.hh:class OutputPin
Pins.hh:class PWMPin
Pins.hh:class IOPin
Pins.hh:class AnalogPin
Pins.hh:class AnalogPins
Pins.hh:class AnalogComparator
Power.hh:class Power
ProtocolBuffer.hh:class ProtocolBuffer
Queue.hh:class Queue
Registry.hh:class Registry
Registry.hh:  class Iterator
Registry.hh:  class Action
Rete.hh:class Rete
Rete.hh:  class Device
Rete.hh:  class Manager
Rotary.hh:class Rotary
Rotary.hh:  class Encoder
Rotary.hh:    class SignalPin
Rotary.hh:  class Dial
Rotary.hh:  class AcceleratedDial
RTC.hh:class RTC
Servo.hh:class Servo
SPI.hh:class SPI
SPI.hh:  class Driver
SPI.hh:  class Slave
Thread.hh:class Thread
Touch.hh:class Touch
Trace.hh:class Trace
TWI.hh:class TWI
TWI.hh:  class Driver
TWI.hh:  class Slave
Watchdog.hh:class Watchdog
Wireless.hh:class Wireless
Wireless.hh:  class Driver
AVR/Programmer.hh:class Programmer
AVR/STK500.hh:class STK500
Canvas/Font.hh:class Font
Canvas/GLCDFont.hh:class GLCDFont
Canvas/OffScreen.hh:class OffScreen
Canvas/UTFTFont.hh:class UTFTFont
Cipher/Base64.hh:class Base64
Cipher/RC4.hh:class RC4
Cipher/Vigenere.hh:class Vigenere
Driver/DHT.hh:class DHT
Driver/DHT.hh:class DHT11
Driver/DHT.hh:class DHT22
Driver/DS1302.hh:class DS1302
Driver/HCSR04.hh:class HCSR04
Driver/NEXA.hh:class NEXA
Driver/NEXA.hh:  class Receiver
Driver/NEXA.hh:  class Transmitter
FS/FAT16.hh:class FAT16
FS/FAT16.hh:  class File
Soft/SPI.hh:  class SPI
Soft/SPI.hh:    class Driver
Soft/UART.hh:  class UART
USI/TWI.hh:class TWI
USI/TWI.hh:  class Driver
USI/TWI.hh:  class Slave
Canvas/Driver/ST7735.hh:class ST7735
Canvas/Element/Textbox.hh:class Textbox
Canvas/Font/FixedNums8x16.hh:class FixedNums8x16
Canvas/Font/Segment32x50.hh:class Segment32x50
Canvas/Font/System5x7.hh:class System5x7
IOStream/Driver/CDC.hh:class CDC
IOStream/Driver/RS485.hh:class RS485
IOStream/Driver/UART.hh:class UART
IOStream/Driver/WIO.hh:class WIO
LCD/Driver/HD44780.hh:class HD44780
LCD/Driver/HD44780.hh:  class IO
LCD/Driver/HD44780.hh:  class Port4b
LCD/Driver/HD44780.hh:  class SR3W
LCD/Driver/HD44780.hh:  class SR3WSPI
LCD/Driver/HD44780.hh:  class SR4W
LCD/Driver/HD44780.hh:  class MJKDZ
LCD/Driver/HD44780.hh:  class GYIICLCD
LCD/Driver/HD44780.hh:  class DFRobot
LCD/Driver/HD44780.hh:  class ERM1602_5
LCD/Driver/PCD8544.hh:class PCD8544
LCD/Driver/ST7565.hh:class ST7565
LCD/Driver/VLCD.hh:class VLCD
LCD/Driver/VLCD.hh:  class Slave
OWI/Driver/DS18B20.hh:class DS18B20
OWI/Driver/DS18B20.hh:  class Search
SPI/Driver/SD.hh:class SD
TWI/Driver/ADXL345.hh:class ADXL345
TWI/Driver/AT24CXX.hh:class AT24CXX
TWI/Driver/AT24CXX.hh:class AT24C32
TWI/Driver/AT24CXX.hh:class AT24C64
TWI/Driver/AT24CXX.hh:class AT24C128
TWI/Driver/AT24CXX.hh:class AT24C256
TWI/Driver/AT24CXX.hh:class AT24C512
TWI/Driver/BMP085.hh:class BMP085
TWI/Driver/DS1307.hh:class DS1307
TWI/Driver/DS3231.hh:class DS3231
TWI/Driver/HMC5883L.hh:class HMC5883L
TWI/Driver/L3G4200D.hh:class L3G4200D
TWI/Driver/MPU6050.hh:class MPU6050
TWI/Driver/PCF8574.hh:class PCF8574
TWI/Driver/PCF8574.hh:class PCF8574A
TWI/Driver/PCF8591.hh:class PCF8591
Wireless/Driver/CC1101.hh:class CC1101
Wireless/Driver/NRF24L01P.hh:class NRF24L01P
Wireless/Driver/VWI.hh:class VWI
Wireless/Driver/VWI.hh:  class Codec
Wireless/Driver/VWI.hh:  class Receiver
Wireless/Driver/VWI.hh:  class Transmitter

Cosa is implemented as an Arduino 1.0.5 "core" and replaces the standard Arduino/Wiring core. All ATmega328P (Uno, Nano,...), ATmega2560 (Mega), ATmega1284 (Mighty) and ATmega32u4 (Leonardo, Micro,...) Arduino based boards are supported together with support for ATtinyX4, ATtinyX5, ATtinyX61 within this single core. The devices drivers and processor module abstractions are available across all processors (where the HW supports them). Cosa is one of the  most complete platforms for Arduino board programming.

Please see documentation on github and blog for more details.
1. https://github.com/mikaelpatel/Cosa
2. http://dl.dropboxusercontent.com/u/993383/Cosa/doc/html/index.html
3. http://cosa-arduino.blogspot.se/



Jan 06, 2014, 01:15 am Last Edit: Jan 06, 2014, 01:20 am by Graynomad Reason: 1
Just to show that I'm paying attention,

ATmega1248 (Mighty)

Is that ATmega1284?

EDIT: And ATmega368P

Rob Gray aka the GRAYnomad www.robgray.com

Go Up