Hi, I'm writing this thread in order to share some of the code I've wrote, not to ask for help. I hope that's okay with moderators
I've been playing around with EK-TM4C1294 for a while and it's my go to platform for diy projects. Since there aren't many projects with it online, I often had to rewrite the drivers for whatever sensor I was connecting to it; or try to port some of the existing code. Recently I went on to clean up some of the code and put it on github for others that might be interested in using it and I figured I could also mention it here. So far, there are 2 sensor libraries, for ESP8266 WiFi module and MPU9250 IMU. Hopefully some more will come in future :)
- Supports all TCP functionality, sending and receiving in both client and server mode
- No support for AP mode, only station mode to connect to existing access points
- Library is written in C++ and follows singleton design approach
- Supports both I2C and SPI communication interface (switch between them using simple macros)
- Two working modes(switch between them using simple macros):
- Direct sensor readings: Read raw sensor values from their registers
- DMP: Loads Digital Motion Processor (DMP) firmware and uses 6DOF sensor fusion to get orientation
- Orientation estimation algorithm:
- Direct sensor readings: Mahony AHRS (9DOF sensor fusion)
- DMP: Built-in 6DOF sensor fusion
- Library is written in C++ and follows singleton design approach
Both libraries come decoupled from hardware through the use of hardware abstraction layer. It defines all the functions required by the library and it's the only file needed to be replaced when the code is being ported to a different mcu.
I've also created an operating-system-like environment for one of my projects which allows one to schedule tasks based on their starting time and monitor system performance. It turned out to be a rather good approach for applications which require remote command execution (e.g.injected through ESP8266) and generally executing bits of code at a precise point in time.