Close
0%
0%

TestLogger Collector

Datalogging device for designed RC car racing

Public Chat
Similar projects worth following
Working as a Data Engineer in professional motorsports gave me a thought that why the data isn't logged in RC cars, which has been my hobby for last 20 years.

We are also developing new dampers for RC cars with my friend and we discussed that we need data to do the development properly. So the outcome was a datalogging project for RC cars without any coding experience in embedded world or HW design experience.

Summary:

Target is to create a datalogging device for RC car racing and learn electronics at the same time. Main reason for this project to get started was the fact there is no datalogging device for RC cars. Hopefully some day this device is so good that it could be actually made as a commercial product.

Current prototype logs with 2ms and it can log transmitter signals (like steering, throttle), wheel speed with hall-effect sensors, temperature, battery voltage, damper movements, laptimes with splits, 3-axis accelerometer, 3-axis gyro.

Hardware:

First prototypes were being built on top of Python board 1.1  and I just made shields on top of that board with necessary connectors etc. This combination is a little bit too big for RC car racing but it's good enough prototyping things. 

Second phase was to design a completely own board. I have already found out that I need to make different version for different types of cars. For example it's difficult to fit full scale device from 1/8th scale car to 1/12th scale car which has limited space and actually it doesn't need that many channels. Currently there is two versions called Base with limited amount of channels and Full with all possible channels.

To get laptimes I made a IR beacon with 555 IC and it sends IR signal with 38kHz and receiver is connected to the datalogging device. First version was simple transmitter with constant 38Khz pulse powered by AAA batteries. Second generation beacon has LiPo battery which can be charged via micro USB cable. Biggest change in second gen beacon is the ability to change how long 38Khz pulses will be sent and this allows split times as main laptime is using different pulse length than split points

HW is not only about the electronics and PCB. The system also needs brackets for sensors so the measurement quality can be ensured. For the moment these have been designed with Fusion 360 and 3D printed. My friend promised to help on this topic and I'll try to write a project update from this topic.

Firmware

Firmware is based on ChibiOS and current version of the firmware is based on this project but it's heavily modified from that with trial and error method :) 

Completely new firmware is under work as now the requirements are known, so it makes sense to build something from scratch. Also my experience and knowledge with C is a bit better. Still a new firmware from scratch is a massive job.

Software

Current FW logs the data in CSV format so it can be used for example in excel, but I have also created a tool to convert CSV file to Motec i2 format. Unfortunately that is not a long term solution as it's violating Motec license agreement and it's not possible to share with anyone. One of the tools I'm using at work is Motec i2 Pro and I really like to UI of that tool. Additionally it's very capable tool do the analysing. Check their website for more info https://www.motec.com.au/i2/i2highlights/

In the longterm I want to have a configuration tool with UI which does the data file conversion, calibration/configuration of the logging device and is connected to TestLogger to input the data. Additionally the data analysing is handled in testlogger.info.

Beacon gen 2 schema.pdf

Schema of the latest IR beacon version.

Adobe Portable Document Format - 23.94 kB - 05/05/2019 at 19:56

Preview
Download

  • Project is not over

    Jussi Luopajärvi10/22/2020 at 11:19 0 comments

    Long time without any updates and with same reason as before, just too lazy and busy to write updates. All the time have been used to for developing the system. Maybe the biggest news is that the project has become a bit more serious and target is to make a commercially available product. Best place to follow up the project TestLogger Facebook and Instagram pages.

    Basically every single aspect of the project has progressed a lot since last update. HW is redesigned, configuration application is redesigned and most importantly there is our own analysing application available!

    I have also designed a custom binary format for the analysing application and that will be open source. About that I will make a post soonish...

  • Big progress on the background

    Jussi Luopajärvi02/07/2020 at 06:51 1 comment

    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.

    Software

    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.

    Read more »

  • IR Beacon and laptimes

    Jussi Luopajärvi05/05/2019 at 19:50 0 comments

    Laptimes is a key element when analysing performance and in this case these are generated with a help of IR beacon(s). Generating laptimes can be achieved with one beacon and by adding one or more beacons it’s possible to generate split times.

    Beacon sends 38 kHz infrared signal on selected pulse length which is then received in the car and logger triggers the lap indicator. Beacon has a switch where the 38kHz pulse length can be changed and this is used to identify if beacon signal is main laptime or split time.

    Beacon also has a lithium based battery which has 2000mAh capacity and nicely fits behind the PCB. To control the battery, there is also battery charging circuit where charging done via micro USB. Battery level indicator is built with four input comparator and bi-colour leds.

    Read more »

  • What the data shows?

    Jussi Luopajärvi01/28/2019 at 14:19 0 comments

    It's been a while since last post and things have progressed a fair bit on HW side like Collector Full V2.2 and completely new IR beacon, but that's not the topic for today. Finally I'm posting about something else than HW development and it's about the collected data.

    I've been using the Full V2.1 with my 2WD buggy (It's Team Associated B6.1D, see https://www.teamassociated.com/cars_and_trucks/RC10B6.1D/Team/) and I've logged the channels as follows.

    • Steering
    • Throttle/Brake
    • RPM/speed from motor sensor port
    • Wheel speed from both rear axle outdrives
    • Battery voltage from two cells
    • G forces on three axis
    • Angular velocity with gyro
    • Damper movement on rear corners
    • Laptimes

    Of course this amount of channels gives you a massive possibilities to analyze both car and driver, but here few simple examples to start with where you need only steering, throttle, speed and vertical acceleration.

    Read more »

  • Remember the f*ing review

    Jussi Luopajärvi01/12/2019 at 07:22 0 comments

    I designed the V2 for Full version in a bit of rush and guess what, it was a massive failure. The boards were working nicely, but microSD slot was placed 180 degrees in a wrong direction (slot was facing against USB connector...), analog 3V3 was not connected to upper board due to an issue in schema plus few other minor issues. 

    What did I learn from this? REVIEW YOUR SCHEMA AND BOARD DESIGN BEFORE SENDING IT TO PCB MANUFACTURER!

    One positive learning from this episode was the possibility to move SD card slot outside the device. Usually the logger needs to be installed on very tight place, so sometimes it's actually good to have an option that you can bring the SD card slot to more accessible location.

  • Firmware architecture depression?

    Jussi Luopajärvi01/01/2019 at 10:55 0 comments

    First of all Happy New Year everyone!

    Last couple of weeks I've been starting to do a spec for the firmware as the hardware starts to be good enough that I can live with the limitation. The firmware design just feels overwhelming task and even difficult to decide where to start. I've never done a spec for embedded SW and last time I've been doing UML charts was probably around 10 to 15 years ago. I already know quite technical challenges I need to resolve, but before I go that far I need to find a how present the firmware on paper. I bought this book to get some guidance https://www.amazon.com/Real-Time-Embedded-Systems-Principles-Engineering/dp/0128015071

    Next step is to learn some good practices what to follow when doing design decisions which is also a challenge as my experience in programming is quite limited. Especially with C.

    Last big step is to actually actually resolve the technical challenges and writing the code. For example how to get each channel to log data on correct logging rate. How handle the buffer. In which format the data should be written because data is coming to buffer on different rates.

    Do you have any suggestions how to start designing FW architecture based on RTOS? If you have good articles to read and learn, please share. This is probably going to be a long project and just need to take the needed time to do it one step at a time and avoid doing shortcuts.

    Read more »

  • Failed full version

    Jussi Luopajärvi12/17/2018 at 21:35 0 comments

    A bit of brake from updating as I have had some work and holiday trips. After the first version made completely by myself which had fairly limited amount of inputs, I decided to go for the full version with my own design. 

    Base guideline for the design was same inputs as I had for PYB shield with much smaller area covered. Usually the height isn't a problem but area used is a big issue. I decided to to with 2 PCBs stacked and connected to together with three board-to-board connectors.

    The goals were achieved with a big but. It was almost half of the size compared to PYB shield version and it had the same connectors. Also the weight was surprisingly low as you can see from the picture below. It was almost 10 grams lighter than PYB shield version. The problem was related to connecting the two PCBs together and using the device on car which jumps and get's massive hits. The boards were not sticking together and then everything fails. 

    Read more »

  • First version without Python board

    Jussi Luopajärvi10/20/2018 at 15:50 0 comments

    A time for another update as I received the first PCBs for a basic logger version which is completely own design and doesn't need a python board as a base. My friend drives a 1/12th pan car which really small and there is no extra space available, so python board shield version is a no go. I thought that maybe that is a good place to design completely own version of the logger. My friend gave a space constraint for the device that it shouldn't be bigger than Sanwa rx-451 receiver. I got quite close to that requirement maybe small fine tuning gets me to that target. Currently the board size is 33x22mm, so it's no too bad. Functionality is pretty limited though..

    The board can log steering, throttle, laptrigger, speed/rpm from motor sensor port, g-forces and gyro values. This is good enough for me to verify the base design for the board and for 1/12th pan car that information already gives enough input to analyze and basic behaviour of the car.

    I don't have any data yet to look, but the reduced size makes the installation so much easier. Also the weight is over 10 grams lighter compared to the last Pyb shield and Python board combo. 

    Read more »

  • PYB shield V2

    Jussi Luopajärvi10/08/2018 at 13:48 3 comments

    In the previous post I mentioned about new prototype and it arrived as planned during last week. I called this as Python board shield V2. As a summary main changes were as follows.

    • Move from through hole components to surface mount components
    • Move from 0.1" header connectors to JST-SH connectors
    • Take RPM and temperature information from motor sensor port
    • Changed the shield from bottom side of PYboard to top side and solder it to PYboard.

    So basically everything was new. 

    Build went pretty smooth even it was one my first times soldering SMT components. My loyal Weller WTCP 51 with 0.4mm tip did the work nicely :) As a result I got a prototype which was 4 grams lighter and few milli meters lower. Pictures shows a bit more

    Read more »

  • Yet another shield for Python board

    Jussi Luopajärvi10/03/2018 at 11:46 0 comments

    This week I should receive a new shield PCB for the collector. I think this shield is already 5th or 6th version, so there has been quite many iterations. This one is a bigger change as this is the first version with surface mount components and sensor connectors are changed from 0,254" header pins to JST SH connectors. There is two reasons why I wanted to change the connectors. First one is surface mounting and smaller size. Second reason is probably the bigger one. With JST connector you can make sure that the connector is always plugged in the correct way.

    Hopefully this helps me to reduce the height and weight of the package. It's still not going to be what is my target but at least one step closer. Also hoping that I get to test this one during the next weekend. I will definitely post some pictures if that happens.

    The next step will be a version without Python board, so get everything on one board... 

View all 10 project logs

Enjoy this project?

Share

Discussions

RichardCollins wrote 08/07/2019 at 16:56 point

Jussi,


Thanks,  Looking forward to it.  I suggest using tab separated, linefeed terminated lines. That goes into Excel and Sheets for quick looks of up to a million readings, and is easy to program.  You have probably tried to program all the variations of comma separated or binary files and pulled out your hair.


One small adjustment I make to a tab separated file, is to put lines at the beginning to document the fields.  Say you have five columns of data, then you would start the file with five rows of  three columns each for the name of the field (tab) units for the field (tab) description of the field (linefeed)  --- then a blank line and the tab separated data.

Parsing is trivial, and tab separated is the default for Excel and Sheets copy and paste or open.

As soon as you get some data, send me a message, and I will take a look.  If I make a spreadsheet I can post that back to you.  Or if I write a Javascript program that anyone can use.  There does not seem to be a common data/content/reference area on HackaDay.IO, so everyone recreates the wheel and things do not get shared with the whole community.  I would like to re-write their software so it enables, and does not slow down, group sharing and collaboration.

Richard Collins, The Internet Foundation

  Are you sure? yes | no

ianrmurphy wrote 08/05/2019 at 11:17 point

You should check out GEMS GDA instead of MoTeC i2:  https://gems.co.uk/products/software/gda/

It's incredibly similar in terms of feature set, but the 'Pro' version has CSV import. I use it for control system development including review of CSV data output from MATLAB simulations.

Cost is reasonable, you will have to check latest retail pricing but from the last 'trade' price list I had from them a single license was <£300 GBP.

PS I used to be a 'Data Engineer / Race Engineer' in the early 2000s...

  Are you sure? yes | no

Jussi Luopajärvi wrote 08/07/2019 at 13:14 point

Thanks for the tip and I will have a look for this one! I just went forward with i2 as I'm using it on daily basis. I'm also using Bosch WinDarab but it's not my favourite tool.

  Are you sure? yes | no

ianrmurphy wrote 08/07/2019 at 19:17 point

You can try out GEMS GDA non-pro for free, the main restrictions is that it only works with their own file format (but they provide a sample). Also it doesn't have math channels.

  Are you sure? yes | no

RichardCollins wrote 04/04/2019 at 17:13 point

Jussi,

This looks like a very reasonable project, with the potential to create a lot of fun, excitement and engineering improvement.  

I did not know there were "Data Engineers".  I was a mathematical statistician most of my career, so I have some appreciation for why it is important to have enough data to model and calibrate a device, whether a moon rocket, or an RC car.

I would like to see what such a dataset looks like.  I read data streams for fun.  The particular character of each stream tells me a lot about the design philosophy of the people involved, and I often see ways to use constrained optimization tools to find better performance.  I am currently trying to encourage instrument designers in many industries and settings to log more data from their instruments, usually to get a boost of three orders of magnitude in some critical parameter.  My own project requires Gsps ADCs at the minimum, so I have a lot to do to bring the cost down to something that is affordable, reliable, and easy to learn and adapt.

I don't supposed the RC builders have started using the drone power controllers?  I was suprised they were handling more than a hundred amps routinely, in a small and affordable package. And, I guess race cars are still required to have wheel, and maintain contact with the ground all the time, or at least the appearance of doing so? Could you cheat and fly the car just over the surface, only touching down as needed?  I seem to remember those electric powered RC cars as a child, leaping and jumping completely off the ground.  That was 60 years ago, so things have changed I am sure.

I am new here, so I don't know if you join a bunch of groups randomly, or it there is some kind of method.  I can just "follow" your project, but I would like to help, even if nothing more than to give you some feedback and thoughts on what you might do.  And to read what seems like a very interesting dataset.  I don't suppose you have any interest in doing the same for drones and large passenger and cargo plane?  I am not offering a job, just asking about related interests.

Richard Collins, The Internet Foundation

  Are you sure? yes | no

Jussi Luopajärvi wrote 08/07/2019 at 13:20 point

Hi Richard,

Sorry for very late reply. I will post some sample data during next week in csv format for you to try.

Best regards,

Jussi

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates