Size: 2805
Comment: moved item
|
Size: 2818
Comment: wireshark for capturing bluetooth packets
|
Deletions are marked like this. | Additions are marked like this. |
Line 33: | Line 33: |
* Debian packages: `bluetooth`, `bluez-tools` and other bluetooth related packages depending on the future development choices | * Debian packages: `bluetooth`, `bluez-tools`, `wireshark` and other bluetooth related packages depending on the future development choices |
Reverse engineering radiator bluetooth thermovalves
FIXME still DRAFT (allow me a couple of days to complete it)
Description of the project: Today's radiators can be controlled by programmable valves (thermostats), some valves sport a BLE (Bluetooth Low Energy) interface allowing a computer (or, more commonly, a smartphone) to program them "remotely" (at BLE ranges). The communication protocol is proprietary but can be reverse engineered, and it was. At Università di Milano (Italy) I supported a thesis that succeeded in completely reverse engineering (by sniffing BLE and by analyzing Android code). The thesis produced a "library" in form of shell scripts that can be combined to create other scripts and the BNF formalization of the protocol. This project proposal mainly aims at integrating the "library" into a full and well documented Debian package and (if possible) to port the software to a more modern language such as Go or Rust. Moreover, it should produce a "best practice" guide for future developers interested in adding new valve protocols on the market.
Confirmed Mentor: Andrea Trentini (Università degli Studi di Milano, Italy)
How to contact the mentor: http://atrent.it
Confirmed co-mentors: Daniel Pocock
Deliverables of the project:
debian package for the current (already developed) shell library (see http://sl-lab.it/dokuwiki/doku.php/tesi:reveng-termovalvole)
- "best practice" guide for the reverse engineering process (packet analyzing, rev.eng. Android code, etc.), to add new valve protocols to the library
- porting to other (more modern?) languages such as Go or Rust
- doc translation into english (this would be done by the mentor, don't worry)
(if possible) integration into "domotics" projects such as home-assistant and openhab
Desirable skills:
critical thinking
- disciplined development skills
SCM tools (i.e. git)
What the intern will learn:
- creating Debian packages
- documenting code
- unit testing
- (maybe, depending on the language chosen) Object Oriented programming
Application tasks:
- git commit, merge, solve conflicts, etc.
- command line operations (filesystem, processes, etc.)
- create small shell script
- NOT using the mouse
Related projects:
(the current state of development, in italian) http://sl-lab.it/dokuwiki/doku.php/tesi:reveng-termovalvole (in italian)
Debian packages: bluetooth, bluez-tools, wireshark and other bluetooth related packages depending on the future development choices