![]() |
Originally Posted by kufman
(Post 16092378)
Digging up and old thread here since it seems like a better place to post the stuff I have been working on. I have also been using the Simple Dyno software even though the developer no longer supports it. I use an Arduino to record the RPM, voltage and current data. I have been working on an improved way to record the data but I need to get an Arduino with more RAM (currently using an Arduino Nano). I plan to record the time for each revolution of the flywheel. I have done this with the Nano but run out of space after 1 second or so. My flywheel design usually results in 5 or 6 second runs. I will post some pics and data when I get home.
Out of curiosity, how are you running out of space? |
Originally Posted by trilerian
(Post 16092384)
If you want to stick with Atmega chip, use the 2560. This is the Arduino Mega.
Out of curiosity, how are you running out of space? This isn't a problem when using the provided sketch from the Simple Dyno software but that setup works a little bit differently. It takes data at fixed intervals and measures the next rotation of the flywheel. The problem being that I am trying to take data from 0 rpm and if the interval is too fast, you will get 2 of the same data point. To counter this, I have set the data taking interval to 20msec which is borderline in terms of resolution. |
Pic of my dyno
https://cimg8.ibsrv.net/gimg/www.rct...56eb246dfd.jpg |
Originally Posted by kufman
(Post 16092404)
One version of my code dumps all the data into an array and then at the end of the run, streams it to the serial port. This setup measures the rotational time for every rotation of the flywheel and has to record RPM, Voltage and Current for each data point. This differs from how most setups work where the data is streamed live to the serial port. I found that the serial can not be used without causing missed interrupts for the RPM measurement. My plan is to try an Arduino Minima board which has 16x the memory.
This isn't a problem when using the provided sketch from the Simple Dyno software but that setup works a little bit differently. It takes data at fixed intervals and measures the next rotation of the flywheel. The problem being that I am trying to take data from 0 rpm and if the interval is too fast, you will get 2 of the same data point. To counter this, I have set the data taking interval to 20msec which is borderline in terms of resolution. What are you using for the inertial load? Eventually I was going to go back and work on a dyno again, but the things that stop me are the inertial load and the front end software. |
Originally Posted by trilerian
(Post 16092416)
For a quick build I did, I used the sensor cable and measured the time between rising edges of the hall sensors. I used input polling for this instead of interrupts. This allowed 3 measurements per rotation. It was a bit erratic after about 10k RPM, but I never went back and revisited it. I like some of the things with the R4, but the Reneses MCU isn't the most user friendly. I was considering going to an STM32. Of course I have an Arduino Giga R1 that is not being used...
What are you using for the inertial load? Eventually I was going to go back and work on a dyno again, but the things that stop me are the inertial load and the front end software. The flywheel load is homemade from a piece of 6061 aluminum. It is 3" diameter, 1 inch thick and weighs 324g. The MOI is around 0.0002334 kg-m^2. |
Originally Posted by kufman
(Post 16092419)
My very first test did the same thing with the sensors in the BL motor. I decided to do an external measurement instead because I wanted brushed motor capability. I also did the input polling but wasn't satisfied with the higher rpm performance. I found that dumping the data to an memory array works well but you do need enough memory to hold the whole run.
The flywheel load is homemade from a piece of 6061 aluminum. It is 3" diameter, 1 inch thick and weighs 324g. The MOI is around 0.0002334 kg-m^2. |
I built my dyno using information from Bob Wright and use his software (RC Crew Chief) to process it. Unfortunately Bob is no longer with us.
The dyno uses an arduino uni that is read using Bob's software. RPMs are read using a disc with 16 holes in it using an opto. I also built a driver to drive the esc so I don't need to use my radio to do the tests. |
Originally Posted by trilerian
(Post 16092426)
So the next question. Are you doing this in an "open source" fashion or just posting about a homemade dyno?
|
Originally Posted by NZDave
(Post 16092447)
I built my dyno using information from Bob Wright and use his software (RC Crew Chief) to process it. Unfortunately Bob is no longer with us.
The dyno uses an arduino uni that is read using Bob's software. RPMs are read using a disc with 16 holes in it using an opto. I also built a driver to drive the esc so I don't need to use my radio to do the tests. |
Originally Posted by kufman
(Post 16092449)
I don't have code on gethub or anything but I don't mind sharing what I am doing as long as people don't try to use my stuff for profit.
Can you tell if his software is measuring number of ticks in a given period of time or time between ticks? Uses interrupts to measure the time between pulses from an optical sensor and an encoder wheel. Same measuring method as the MiniPro |
That must be a fairy new thing on the minipro. It used to measure number of ticks per 50msec or 100msec time period.
As far as open source, all my 3d printed parts are public on Tinkercad. |
Originally Posted by kufman
(Post 16092409)
Pic of my dyno
https://cimg8.ibsrv.net/gimg/www.rct...56eb246dfd.jpg That is pretty sweet!!! Nice job! |
Originally Posted by kufman
(Post 16092459)
That must be a fairy new thing on the minipro. It used to measure number of ticks per 50msec or 100msec time period.
As far as open source, all my 3d printed parts are public on Tinkercad. |
Originally Posted by trilerian
(Post 16092470)
Actually I made the assumption that the MiniPro measures time between ticks, as I think the other way is prone to error... Just because the sample rate says 10Hz, doesn't mean it is counting the ticks for 100ms. Just could be the reading at 100ms. My setup was obviously measuring time between ticks, and I was spitting out the reading every 100ms.
|
Here is an example of timing every revolution and dumping it into an array of RAM.
https://cimg8.ibsrv.net/gimg/www.rct...5ec5109a14.png |
| All times are GMT -7. It is currently 10:31 PM. |
Powered By: vBulletin v3.9.3.9 Patch Level 3
Copyright © 2026 MH Sub I, LLC dba Internet Brands. All rights reserved. Use of this site indicates your consent to the Terms of Use.