Finally I got my act together and write some update about the project. Even though I haven't written any updates, the project has progressed quite much, so here is an overview of the all the components.
The software for desktop has been completely done from scratch to have more functionality, better user experience and to work cross platform. Previously the desktop app was just simple CLI app for Windows.
Because web technologies are close to my heart and from those I have the best understanding (still not good I would say), I decided to give a try for Electron to create the desktop application as it's Node.js based (First time using Node.js) and allows compiling for Mac, Windows and Linux from the same source code. This is a big benefit for me as I'm doing everything by myself.
So far I've had good experience with Electron and only downside has been the large application size (over 100MB). See https://www.electronjs.org for more info. If you quickly need to make simple desktop app, I definitely recommend to have a look. I'm not sure if it is enough for applications where high performance is needed, but looks really good for my use case.
So I made app called Connector which has two main features. First one is the data import from memory card and converting it to Motec i2 or CSV file format. Second feature is the configuration of logger. In the configuration section you can generate the config file via UA but you can also calibrate the device. In other words you connect the device via USB and it sends the current measurement values to the configuration application where you can use the numbers for calibration purposes.
Here is a video how it works.
Analysing too for the data is the tricky part. As mentioned I'm using Motec i2 which I think is a brilliant piece of SW, but no one else can use the file converter except myself. I have now contacted multiple tool vendors and asked if they have any interest to start co-operation with my project. Let's see if that brings any results.
Mean time I've been preparing for the worst which means I need to develop my own analysing tool. Probably I will create some simple prototype with Electron, Vue-grid-layout (see https://github.com/jbaysolutions/vue-grid-layout) and LightningChart (see https://www.arction.com/lightningchart-js/) to see if I could create my own analysing tool. But this is just an idea in my brains for the moment to get something done quickly and probably proper developers would kill me for this idea. Benefit of this would be to have both desktop and web interface for the analysing tool. Of course the possibility to use data either from remote DB or locally generated files. One thing I would like to achieve is easy sharing of data.
As the base of the firmware was copied from the internet with my own additions on top of it, I felt that I needed to rebuild it from scratch. Also the original FW had its flaws. For example I had separate config files for the logger and data processor. Other problems were that you had one logging rate for all channels (not sensible to measure temperature with 2ms logging rate) and it file was in CSV format, which is not good from performance point of view.
So I have completely reworked the FW. It's still based on Chibios (see http://www.chibios.org) as I have now started to learn the way it works and the performance is good. Architecture of the FW is my own and of course still evolving when the time goes on. The main highlights are as follows.
- Only one configuration file for initiating the logger and processing the data files
- USB serial communication to enable easier configuration from desktop application. See SW section of this post
- Each channel can be configured separately instead of hard coding. For example logging rate, amount of decimals, channel name and measurement unit can be defined. The video above shows the things what can be configured.
- Data is written in binary format
I still have some challenges to sort out and mainly these are related how to handle the USB connection and config files. Also the FW doesn't handle error situations very well.
Data is written in binary format and I made a simple format how to write the data to SD card. Each measured sample is own package where the package size is 8 bytes. First four bytes includes header, channel id and data length. Last four bytes includes the data in integer format.
So there is two different versions from the logger which are Mini and Full. Mini was completely redesigned at the end of last year. Main target was to minimise the footprint and still to have necessary channels to analyse driver behaviour. Assembled PCB weighs only 4.5 gramms and foot print is 21 x 26mm. It is logging steering, throttle, laptimes, motor RPM, G forces and angular speeds.
All the sensors are now modular. In other words this means that logging unit has JST-SH connectors for all external sensors and similar connector can be found from the sensor side. This allows to change the connecting wire very easily depending on the car used and needed cable length. it's easier to keep the wiring neat and tidy without making custom wiring looms for each car model.
But in general the hardware starts to be pretty stable and it's only minor tweaks and improvements I have done lately. More development would be needed on device cases and sensor brackets.
That's all for this time, thanks for reading the update :)