Difference between revisions of "BemixOS"

From SlugWiki
Jump to: navigation, search
 
Line 1: Line 1:
BemixOS will be a software layer running on the PIC microcontrollers in order to provide support for the 4E Network and other common IO devices such as LCD displays and matrix multiplexed IO lines.
+
BemixOS is an attempt to standardize all the microcontrollers used in Bemix through a uniform software layer. The user will be able to send and recieve packets on the 4E network in the same way, regardless of what type of PIC is used or whether it is in the Bemis bathroom or the Walcott bathroom. Also, all the general purpose IO will appear to be the same even if it is multiplexed. There may also be built in support for devices such as LCD displays, seven segment displays, and matrix keypads.
 +
 
 +
==Interrupts==
 +
BemixOS will interrupt on a timer in order to perform IO and other tasks.
  
 
==4E Network==
 
==4E Network==
This be a version 1.0 of the curruent beta version of the 4E network code. Improvements will include:
+
This be version 1.0 of the curruent version of the 4E network code. Improvements will include:
 
* fix collision bug where new packets overwrite old ones even if the new one has the wrong address
 
* fix collision bug where new packets overwrite old ones even if the new one has the wrong address
 
* fully interrupt driven reception and transmission
 
* fully interrupt driven reception and transmission
Line 8: Line 11:
 
* write in a way such that it is portable between PICs
 
* write in a way such that it is portable between PICs
 
* add error handling
 
* add error handling
 +
 +
==EEPROM==
 +
BemixOS will provide support for reading and writing to the PIC's EEPROM. This will be used for storing the PIC's address, timer calibration values, passwords, and other user defined data that should not be hardcoded.
 +
 +
==IO Buffer==
 +
* automatic software debouncing of inputs
 +
* provide functions such as getButton(buttonAddress) and readButton(buttonAddress) that wait for a button push and simply read the IO Buffer, respectively.

Revision as of 14:27, 28 April 2006

BemixOS is an attempt to standardize all the microcontrollers used in Bemix through a uniform software layer. The user will be able to send and recieve packets on the 4E network in the same way, regardless of what type of PIC is used or whether it is in the Bemis bathroom or the Walcott bathroom. Also, all the general purpose IO will appear to be the same even if it is multiplexed. There may also be built in support for devices such as LCD displays, seven segment displays, and matrix keypads.

Interrupts

BemixOS will interrupt on a timer in order to perform IO and other tasks.

4E Network

This be version 1.0 of the curruent version of the 4E network code. Improvements will include:

  • fix collision bug where new packets overwrite old ones even if the new one has the wrong address
  • fully interrupt driven reception and transmission
  • imporved collision avoidence
  • write in a way such that it is portable between PICs
  • add error handling

EEPROM

BemixOS will provide support for reading and writing to the PIC's EEPROM. This will be used for storing the PIC's address, timer calibration values, passwords, and other user defined data that should not be hardcoded.

IO Buffer

  • automatic software debouncing of inputs
  • provide functions such as getButton(buttonAddress) and readButton(buttonAddress) that wait for a button push and simply read the IO Buffer, respectively.