Pigmeo Framework ToDo
From Pigmeo Development Wiki
This is the list of unimplemented but proposed features which will be published in future Pigmeo releases.
Contents |
Namespaces and Classes
List of namespaces and classes intended to be implemented by Pigmeo Framework, inside the Pigmeo namespace.
Pigmeo.Displays
See http://en.wikipedia.org/wiki/Display_device
- Pigmeo.Displays.LCDs
- Pigmeo.Displays.SevenSegments
- Single7SegCAn {}
- Single7SegCK {}
- Single7SegDPCAn {}
- Single7SegDPCK {}
- Special classes only for numbers and only for letters would be useful too
- Pigmeo.Displays.FourteenSegments
- Pigmeo.Displays.SixteenSegments
- Pigmeo.Displays.BarGraphs
- BG10CAn {}
- BG10CK {}
- BarGraph {} //any amount of LEDs
- Pigmeo.Displays.DotMatrix
- Pigmeo.Displays.LED
- Bicolor
- Tricolor
- Pigmeo.Displays.POV
Pigmeo.Keyboards
- Matrix keyboards
- AT and PS/2
Pigmeo.Motors
- Pigmeo.Motors.DC
- L293 controlling two motors
- L293 controlling four motors
- L293 controlling two motors with only two inputs per motor (IN2 and IN4 being inverted using NOT gates from IN1 and IN4)
- Pigmeo.Motors.Servomotors
- Futaba
- Pigmeo.Motors.Stepper
Pigmeo.Communications
These classes allows microcontrollers and embedded devices to communicate with each other and with computers. They must be implemented in software. Each device library will contain classes which allows to use internal communication-related peripherals too.
- Pigmeo.Communications.USB
- Serial (FT232)
- HID
- See also
- LibUsbDotNet
- http://www.lvr.com/
- http://www.usbmadesimple.co.uk/
- http://www.icsharpcode.net/opensource/sharpusblib/
- http://libusb.sourceforge.net/doc/examples-code.html
- http://www.lrr.in.tum.de/Par/arch/usb/usbdoc/
- http://www.hobbypic.com/index.php?option=com_content&task=category§ionid=3&id=25&Itemid=27
- http://picmania.garcia-cuervo.com/USB_0_Desencadenado.php
- Pigmeo.Communications.IR (infrared)
- Including common remote control protocols
- http://www.sbprojects.com/knowledge/ir/ir.htm
- Pigmeo.Communications.I2C
- Pigmeo.Communications.CAN
- Pigmeo.Communications.USART
- Pigmeo.Communications.SPI
- Pigmeo.Communications.RS232
- Pigmeo.Communications.X10
Pigmeo.Cryptography
Note: these classes might be already implemented in the .NET Framework and libraries within the Mono namespace.
- Pigmeo.Cryptography.PRNGs
- Pigmeo.Cryptography.Encryption
- Pigmeo.Cryptography.Encryption.SymmetricKey
- Pigmeo.Cryptography.Encryption.SymmetricKey.StreamCiphers
- Pigmeo.Cryptography.Encryption.SymmetricKey.BlockCiphers
- Pigmeo.Cryptography.Encryption.PublicKey
- Pigmeo.Cryptography.Encryption.SymmetricKey
- Pigmeo.Cryptography.HashFunctions
- Pigmeo.Cryptography.CRCs
- Pigmeo.Cryptography.Checksums
- Pigmeo.Cryptography.MACs
Pigmeo.Network
See http://en.wikipedia.org/wiki/Internet_protocol_suite
Pigmeo.Storage
See http://en.wikipedia.org/wiki/File_system#Data_retrieval_process
- Pigmeo.Storage.DiskFilesystems
- FAT16
- FAT32
- ext2
- NFS
- SMB
- Pigmeo.Storage.Interfaces
- SD/microSD y SDHC
- MMC
- CompactFlash/PCCard/PCMCIA
- SmartMedia
- Memory Stick
- PATA
- SATA
- Pigmeo.Storage.Schemes
Pigmeo.Kits
Set of classes for interfacing easily with peripherals integrated in (usually) commercial kits, such as robots, microcontroller trainers/development boards/evaluation boards/demo boards...
- Microchip demo boards
- Lego Mindstorms
- Bioloid
- Skybot
- Wii remotes
Pigmeo.Mathematics
See http://en.wikipedia.org/wiki/Mathematics , http://en.wikipedia.org/wiki/Category:Mathematics and http://en.wikipedia.org/wiki/Template:Mathematics-footer
- Pigmeo.Mathematics.Arithmetic
- Summation
- Product (of a series). See http://en.wikipedia.org/wiki/Product_(mathematics)
- Pigmeo.Mathematics.Statistics
- Pigmeo.Mathematics.Statistics.Averages
- MeanAverage
- ArithmeticMean
- Median
- Mode
- Geometric Mean
- harmonic Mean
- More: http://en.wikipedia.org/wiki/Average#Table_of_averages
- Pigmeo.Mathematics.Statistics.Averages
Pigmeo.Physics
Ideas? See http://en.wikipedia.org/wiki/Physics
- Temperature. Still missing: Rankine, Delisle, Newton, Réaumur and Rømer. See http://en.wikipedia.org/wiki/Temperature_conversion
- Vector2
- vector3. See this. It's been also implemented by other free frameworks.
Pigmeo.Sound
Basic data types
Variable types not supported by .NET Framework, but useful for memory-constrained devices. These must be structs, not classes.
- UInt4
- UInt6
- char8
- string8
- UInt12
- UInt20
- UInt24
- Int128
- UInt128
Pigmeo.PC
Classes only useful for computers, .NET executable files being run on top of a virtual machine, instead of being compiled by Pigmeo Compiler
- UsbHost?
Other classes
- Time signals, such as DCF77
- Qalculate! contains lots of useful functions. They could be implemented as static methods.
Device libraries
- List of supported packages by a given microcontroller, and pinout for each one
Hardware Architectures
PIC
- PIC12. 33 12-bit instructions. 8-bit RAM registers.
- PIC10F, some PIC12F and some PIC16F
- They don't have interrupts, except 12x5XX which has "wake up on change interrupt"
- One 8-bit timer with no overflow interrupt
- SLEEP support
- Almost same instruction set as PIC14, PIC12 has two more (TRIS and OPTION) and four less (ADDLW, SUBLW, RETURN and RETFIE missing, but RETLW available)
- PIC14. 35 14-bit instructions. 8-bit RAM registers.
- TRIS and OPTION are instructions in PIC12, but registers in PIC14
- Same 8-bit timer as PIC12, plus another 8-bit and 16-bit timers (3 timers total)
- PIC12F and most PIC16F
- Examples:
- 12F: 629, 635, 675, 683
- 14C - Mixed-signal MCUs with DAC
- 16C: 432, 433
- 16C: 554, 557, 558
- 16C: 62, 620, 620a, 621, 621a, 622, 622a, 63a, 65b
- 16C: 71, 710, 711, 715, 717, 72, 73b, 745, 74b, 765, 770, 771, 773, 774, 781, 782
- 16C: 925, 926
- 16CR: 620a, 73, 74, 76, 77
- 16F: 616, 627, 627a, 628, 628a, 630, 636, 639, 648, 648a, 676, 684, 685, 687, 688, 689, 690
- 16F: 716, 72, 73, 737, 74, 747, 76, 767, 77, 777, 785
- 16F: 818, 819, 84, 84a, 87, 870, 871, 872, 873, 873a, 874, 874a, 876, 876a, 877, 877a, 88, 886, 887
- 16F: 913, 914, 916, 917, 946
- 26HV: 626, 785
dsPIC
dsPIC30F and dsPIC33F. 83 overloaded 24-bit instructions. 16-bit RAM registers.
Instruction sets are identical. See other differences: http://www.microchip.com/stellent/groups/dspic_sg/documents/devicedoc/en025672.pdf
AVR
See http://en.wikipedia.org/wiki/Atmel_AVR_instruction_set
Other
- PIC16. 58 16-bit instructions.
- Same 35 instructions as PIC14, but 16-bit wide, plus 23 extra instructions
- Up to 33MHz
- 16-level call stack
- Two open drain high voltage (12V) and high current (60mA) pins.
- Same timers as PIC14 (2x8-bit + 1x16-bit) plus another 16-bit timer (4 timers total)
- Support for external program memory (run as microprocessor instead of microcontroller)
- Examples:
- 17xXX
- PIC18. 75 or 77 16-bit instructions. 8-bit RAM registers.
- PIC24F. 76 overloaded instructions. 16-bit RAM registers.
- PIC24H. 71 overloaded 24-bit instructions. 16-bit RAM registers.
- ARM