As a normal octave user, and not a contributing developer, would it still be ok to add the following project suggestion?
Low-Level I/O
Octave currently provides file I/O and sockets for communicating with the outside world. Octave is currently not capable of communicating over serial interfaces (RS232) or, for example, I2C and CAN (although an workaround for serial I/O exists, however the author could never get it to work in an acceptable way). The project would provide communication interfaces in octave, allowing octave to directly communicate with measurement systems, data acquisition systems, sensors, robotic systems and the like.
RS232 interfaces are often deemed "legacy", however there is not only an enormous amount of expensive, existing instrumentation equipment out there, still using RS232, but due to the simplicity it is still common in new embedded systems, often bridged via USB providing a virtual com port.
Potential interfaces to support could, for example, be RS232, I2C, CAN, LIN, SPI, parallel port, GPIB, USB HID, USBTMC. One initial task of the student would be to select a subset of these standards to support, taking, for example, existing drivers into account.
Required skills: C++, system programming knowledge, knowledge of Octave's current handling of file descriptors.
Difficulty: Mostly medium, depending depending on existing driver support and experience with the protocols
Potential mentor: