wernerdaehn / cc3d-cablecam-controller Goto Github PK
View Code? Open in Web Editor NEWCC3D and STM Cube based CableCam controller
License: Apache License 2.0
CC3D and STM Cube based CableCam controller
License: Apache License 2.0
hello,
i m not an exper in rc model and programation.
my configuration
-lrp 1600kv
-skyrc toro 150 amp
-radio fly sky fs-th9x
-recever fs-r9b (8 channel) pwm whis an encoder pwm to sumppm for connecting 1 wire in the cc3d revo
-hall sensor well and capter
all is connected,
it's neccesary to configur the skyrc toro 150 amp before programing the cc3d?
i have flashing the cc3d whis the firmwear, i set this fonction $I0 for sumppm and now i don't no set this comand $j whis my radio for make the end point, max speed...etc whis the switch of my radio
what is a good shoice...plane or helicopter option in the radio?
if any can help me
thank you nicolas
Could you please link to the firmware?
With the latest firmware verisons, I have a problem, I use a futaba receiver, but when checking the channel entries with the $ i command, it only detects channels 1,2,3, 5, but for channels 5,6, 7,8 and 9 the values always appear in 0, with the oldest versions if it detects these channels well.
Old Versions
$i
$i 1 6 7 5 8 256
last valid RC signal for channel 1 = 1024 (used as speed signal input)
last valid RC signal for channel 2 = 1018
last valid RC signal for channel 3 = 1010
last valid RC signal for channel 4 = 1020
last valid RC signal for channel 5 = 1909 (used as max acceleration value selector)
last valid RC signal for channel 6 = 1909 (used as programming switch)
last valid RC signal for channel 7 = 139 (used as endpoint switch)
last valid RC signal for channel 8 = 1909 (used as max speed selector)
last valid RC signal for channel 9 = 144
last valid RC signal for channel 10 = 144
last valid RC signal for channel 11 = 1025
last valid RC signal for channel 12 = 1025
last valid RC signal for channel 13 = 1025
last valid RC signal for channel 14 = 1025
last valid RC signal for channel 15 = 1025
last valid RC signal for channel 16 = 1025
current ESC out signal Servo 1 = 1500
OK*4d
Last Versions
$i 1 6 7 5 8 256
last valid RC signal for channel 1= 1024 (used as speed signal input)
last valid RC signal for channel 2= 1016
last valid RC signal for channel 3= 1010
last valid RC signal for channel 4= 1020
last valid RC signal for channel 5= 0 (used as max acceleration value selector)
last valid RC signal for channel 6= 0 (used as programming switch)
last valid RC signal for channel 7= 0 (used as endpoint switch)
last valid RC signal for channel 8= 0 (used as max speed selector)
last valid RC signal for channel 9= 0
last valid RC signal for channel 10= 0
last valid RC signal for channel 11= 1025
last valid RC signal for channel 12= 1025
last valid RC signal for channel 13= 1025
last valid RC signal for channel 14= 1025
last valid RC signal for channel 15= 1025
last valid RC signal for channel 16= 1025
current ESC out signal Servo 1 = 1500
I'm adding to my app the play function, but I discovered that the play mode work from RC but not from Bluetooth $P 1 command. I tried also to put $P 1 from Putty connected by usb, and it don't work.
The command is accepted as correct, but nothing happen.
Also tried to unassign the RC channel.
What I'm doing wrong?
EDIT: I uploaded the APP with play here if you want try: http://william-fanelli.com/wp-content/uploads/myupload/ID_CablecamSetup_8.apk
Is it possible to use buzzer outputs of the flip board as the confirmation of setting the endpoints? One beep for the first and two beeps for the second endpoint? Also it be useful to dyplicate onboard mode light via led strip output.
When the VESC is used as ESC, the controller can query it to get information about its internals, like battery voltage, fault codes and the such.
Dear Werner,
there is a little bug in $i input parameters. As now many people use $j instead maybe is not a big problem, but it is a problem for my app that set all channel input with one only command.
$i don't accept anymore 256 as value for disable the input. I tried to use it for many input and if there is this value is skipped.
Hi @wernerdaehn ,
I'm wondering if there is any other bluetooth module option that would have a range greater than 100m or some other two-way communication solution. It would be useful to have a range at least equal to the largest rope reel, 200m.
What do you think?
My ESC is SKYRC 160. Built-in 6V/3A BEC. Is this OK for FLIP F32 board and signal from hall sensors?
Currently you need to know a lot in order to setup everything. Much better to guide through the setup and test along the line. For example the controller could ask "Put stick to full throttle" and hence knows the input to use and the neutral/min/max values for that.
I have strange problem witch graupner MX-20 and GR-16 receiver
when I switch receiver to SUMO 08 ch it only see first eight channels, but if I switch to SUMO 16 it don't see any signal from any channels, any ideas?
regards Michal
It does not get any changed values from the SBus and no idea why. Related to DISABLE_RC maybe? Can't find the spot.
Dear Werner, I'm working for add to a my app (and a new windows app, I want speak with you about this) the sbus out channel remapping.
But there is something strange with $G command.
If I input, for example, $G 1 2 3 4 5 6 7 8 it work, and I receive this from board:
Last RC signal received 4653116ms ago
Gimbal Out:
input channel 1 ==> SBus out channel 1, current output = 992
input channel 2 ==> SBus out channel 2, current output = 992
input channel 3 ==> SBus out channel 3, current output = 992
input channel 4 ==> SBus out channel 4, current output = 992
input channel 5 ==> SBus out channel 5, current output = 992
input channel 6 ==> SBus out channel 6, current output = 992
input channel 7 ==> SBus out channel 7, current output = 992
input channel 8 ==> SBus out channel 8, current output = 992
But if I try some other combination I have strange answer from board, for example, with
$G 9 10 11 12 13 14 15 16 I receive:
Last RC signal received 4737885ms ago
Gimbal Out:
input channel 9 ==> SBus out channel 1, current output = 992
SBus out channel 2, current output = 992
SBus out channel 3, current output = 992
SBus out channel 4, current output = 992
SBus out channel 5, current output = 992
input channel 15 ==> SBus out channel 6, current output = 992
SBus out channel 7, current output = 992
SBus out channel 8, current output = 992
And only channel 9 and 15 are remapped, but I don't understend how.
Other example, $G 2 3 4 5 6 7 8 9.
I want remap my channel 2 to 1, 3 to 2 and so on, but result is this:
Last RC signal received 4885037ms ago
Gimbal Out:
input channel 9 ==> SBus out channel 1, current output = 992
input channel 1 ==> SBus out channel 2, current output = 992
input channel 2 ==> SBus out channel 3, current output = 992
input channel 3 ==> SBus out channel 4, current output = 992
input channel 4 ==> SBus out channel 5, current output = 992
input channel 5 ==> SBus out channel 6, current output = 992
input channel 6 ==> SBus out channel 7, current output = 992
input channel 7 ==> SBus out channel 8, current output = 992
It seems that output and input are exchanged. Maybe i don't understand well how work, but in my mind I want 8 channel output (1 to 8) remapped from my input, 14 or 16 channels.
In this way I can remap some of my 8 first channel to output, are you sure that is correct? Anyway, i can put value higher than 8, So I think that my value after $G is for my Input channel, not output on sbus.
This is a great project. Thank you very much for it.
I also repeated it, however, I am having problems with some settings - when approaching the end point, the ZableCam twitches instead of smooth braking.
https://youtu.be/fO23YbsISy8
And also, in the neutral position, when nothing happens, it automatically rolls back (the holding force is insufficient)
Can somebody help me set it up?
Can you please keep an eye on the position sensor?
In my case I marked one magnet of the sensor wheel with a pen and hence know the exact position. And I marked the rope at position 0.
When I drive back and forth, high & low speeds, high & low accelerations, the point does not move at all. Always use the $p command to get the position. Just saying it does not stop at the end point precisely has too many other variables. Mass of the cablecam, brake momentum etc.
I had to tweak the STM encoder settings a bit but now I believe it works perfectly for me. No slippage as the sensor wheel can move freely and is pressed via the rope tension into the rope. And no hall signals get lost.
There could be a couple of reasons why you results might be less accurate and I want to get a feel how well all works at the moment.
Hi,
I see that the project is stopped two years ago, neverthless I'am very interested to want to build your cablecam, but i am stuck at the start, cannot find any of the mentioned CC3D controller on the market.
Is it possible to change it to another type, or i need to find another solution and this project is EOL?
Thanks!
HI Warner, I tried to connect a bluetooth module, it is not claer as setup it. I seen a images where you also changed the hall sensor IN. Can you help me?
During some test on the rope, I found a little problem with deceleration near to the end points. I see this in autoplay, but it is the same if you drive the cablecam to end points at max speed.
The problem is that the deceleration is not smooth, but a bit "choppy".
I solved the problem rising the max allowed error parameters from 100 (default) to 300.
Now the deceleration is smooth, but when the cablecam arrive to the end point speed is not zero (anyway is NEAR to zero) and it stop abruptly.
My mind is that the calculation for deceleration have some kind of error, so, if allowed error is low the board try to adjust speed creating the "choppy" deceleration. When max error is higher, The deceleration go until the cablecam don't is on the end point, but because this error speed is not zero, so the board brake in order to don't go over the end point.
My guess is that deceleration start too late, Or is less that we need. Maybe also cablecam inertia do something, anyway, is not possible to have a parameter for "anticipate" a bit the deceleration? Just for debug...
Hi Werner, i discovered a little bug. Autoplay don't work when safety offset is too hight, may be that the system wait to be at endpoint for reverse, but with offset you don't reach the endpoint.
Hope that is not a big problem.
Can you please keep an eye on the position sensor?
In my case I marked one magnet of the sensor wheel with a pen and hence know the exact position. And I marked the rope at position 0.
When I drive back and forth, high & low speeds, high & low accelerations, the point does not move at all. Always use the $p command to get the position. Just saying it does not stop at the end point precisely has too many other variables. Mass of the cablecam, brake momentum etc.
I had to tweak the STM encoder settings a bit but now I believe it works perfectly for me. No slippage as the sensor wheel can move freely and is pressed via the rope tension into the rope. And no hall signals get lost.
There could be a couple of reasons why you results might be less accurate and I want to get a feel how well all works at the moment.
This is actually two stages.
First read the value from the oDrive.
Second, when the CC3D is set to use the oDrive as source, switch to position control altogether.
Dear Werner, yesterday night I noticed during some test on the board that the passthrough mode is influenced from max speed control pot, but not from acceleration pot.
If I switch to Passthrough with speed limits all 2 pots works (and it is correct).
Also exponential factor change the response of Passthrough mode.
I remember that before this mode was input=output without filters.
It's a choice or it's an error? Also, is not a big problem as we can set max speed to 1 and take pot at max for test, but just to know.
Add an opportunity writing Endpoints into the EEPROM right after are set
Hello Werner.
First of all I would like to thank you for sharing this amazing system to all of us. It is a great way to film with cable cam more safely. I really appreciate your work. Thanks again
Hi @wernerdaehn
is it possible to add additional aux channels to the controller? I use the existing AUX channel for focus control, and I would use additional channels for aperture and zoom also.
Great job!!!
Assignment of FrSky X9D Taranis plus channels.
Someone can pass the values.
inputs
I would appreciate your urgent response
Thank you for this wonderful project!
Can you add the ability to broadcast directly 1 channel (any free) from the transmitter to the second output of the board (Servo2)? That would be great!
Plan to put the Servo to control Yaw on gimbal.
I have HC-06 manually programmed to:
AT
OK
AT+UART
+UART:38400,0,0
OK
AT+NAME
+NAME:cablecam
OK
AT+PSWD
+PIN:"1234"
OK
AT+VERSION
VERSION:3.0-20170609
OK
But it doesnt work for FLIP.
This is not a firmware question, but I checked the new pages and I found some questionsI had mount a vesc 6 on the Cablecam. It work well, but:
Hi, now I'm trying for the first time the controller, and with my cablecam I have a problem with speed and acceleration.
In passtrough mode is ok, but I don't have limits.
In passtrough with endpoints, the response of the motor is not good. When I put the stick in one direction, it accelerate very slow (I tried many setting for this) and when I release the stick, it decelerate very slow, too slow.
If I rotate at max value the pot for max acc and max speed the situation is better, but not good.
Question is: is possible, when pot is at max value, have the same response as passtrough?
The problem is that on short cable (under 15 metres), I'm unable to reach good speed before end point.
Regards
William
Add some debug info when going through the state machine and reading values.
Hello again Werner
I have just burned a RoboClaw 2x60AHV, 60VDC Motor Controller
Link: http://www.ionmc.com/RoboClaw-2x60AHV-60VDC-Motor-Controller_p_12.html
Dtasheet: http://downloads.ionmc.com/docs/roboclaw_datasheet_2x60AHV.pdf
I know it was not a problem that came from the CC3D board or software and I am just looking for a help to figure out what happened.
Everything was running fine on a 6S (25.2V) LiPO battery until I have decided that it is ready to be tested on a 12S (50.4V) LiPO. Once I plugged it to the power it burned into flashes and smoke (ouch). This model is rated up to 60V,60A per channel and I ran it in "Bridged" mode which doubles the output to the motor to 60V,120A.
I am just looking for your opinion what may be the cause of the burn. I am sure it was wired correct, but not sure that I have it properly tuned.
Please excuse me for bothering you with my problems.
Thank you very much in advance for your support
Currently the only protection is that at boot, the input has to be in neutral.
But what if the SumPPM is not connected yet? Check for other conditions that might cause the motor to start unintentionally.
add a new mode: automatic cablecam movement at a given speed (by the Pot via RC or(and) variable in settings) back and forth without moving the stick with the start and end position (set before). This mode is needed for working alone, so that there is a possibility of controlling the gimbal with another RC.
Hi @wernerdaehn ,
I finally set everything together and put it on the rope. Everything works fine but... Something strange is happening with the endpoint function. After entering the program mode , I set end point 1 and endpoint 2, but when I return to operational mode, ccam does not respect the set endpoint settings. Like I didn't even set end points.
My $r setting is r-1 (as I drive forward, the pulse rate decreases), but i also tried it with $r1, (I get a message:" Is $r really correct? Does not look like it") but with no luck.
ESC is brushed
Motor is brushed
thx!
Hi Werner,
I have an issue flashing the firmware on my CC3D EVO board.
Connecting the board, while keeping the boot button pressed ( unfortunately the board doesn't have a boot button, but a solder-pad-bridge), starts the internal USB bootloader. Shown by the Power LED, which is on and the Status LED, which is off.
But for some reason the board doesn't appear in the DfuSe utility at all.
I've done this procedure a couple of times, but the board never showed up in the DfuSe utility.
Do you have an idea how to solve this problem?
Or know what I am doing wrong?
Regards,
Till
Status update:
I can read and control the odrive's velocity mode now. Similar to the VESC.
Need some more testing but then I can release the new build.
Hi Werner,
I have two kind of problem with mode switch from RC
Hi,
I need help.
I do not have a button to enter bootloader mode on this board. I bought this board just for this project, I've finished all the hardware and now came to a stop.
Any help would be greatly appreciated.
Thank You.
Dear Werner Daehn!
We have a Flip32 F4 board and i flashed it with the latest firmware. We could flash it successfully but the serial console was nat available. So i rolled back and the last date that the firmware worked was 13 August 2017. From 14th the led won't flash on the board and the serial console is unavailable. Could you please help to figure out what is the problem? The project is really cool by the way, we are almost done with ollecting and cutting the parts.
Thanks,
Peter Bittó
We had a case where the defaults were not used and all was set to or 0.
Dear Werner, ther is an error about argument number in PROTOCOL_ESC_NEUTRAL
If you send only 2 argument, you receive error from data parser,
$ERROR: invalid value for provided argument(s)
if you send 3 argument you receive error for argument number
$ERROR: wrong number of arguments
So it's impossible to set this values.
I think that you added the third argument for max deflection but you don't changed the argument number check.
regards
case PROTOCOL_ESC_NEUTRAL:
{
int16_t p[3];
argument_index = sscanf(&commandlinebuffer[2], "%hd %hd %hd", &p[0], &p[1], &p[2]);
if (argument_index == 2)
{
if (p[0] > 500 && p[0] < 2000 &&
p[1] > 0 && p[1] < 100 && p[2] > 300 && p[2] < 900)
{
Hi @wernerdaehn ,
I changed a new ESC that can operate at 48V. When I connect everything as it was on the previous 24V system (and everything worked fine), nothing happens. The ESC does not respond at all.
The ESC manual says:
"-PWM mode1: 0-100% PWM: You can use your own PWM controll signal from your PLC or
microprocessor. The minimum controll PWM frequency is 100Hz. The step resolution 1us. The
acceptable voltage level: 3.3-10V.
Currently is $n 1500 20 800, but whichever else I put, it is not responding at all. I was thinking that the problem is maybe in PWM frequency which is below the required minimum of 100Hz?
In "wired" Potentiometer or throttle mode, everithing is fine.
Any suggestions?
Hello.
I want to build this project, but if i type $w in putty to save the settings, putty says "eeprom save failed". what should i do? i use this board:
thank you.
Hi,
I'm using cc3d mini revolution from hobbyking I have spektrum dx8 and I'm using ppm encoder.
I can't get any input signal from receiver.
with $i command all values are zero. I have tried with another 3ch radio with no result. I also changed to another ppm encoder and still no input signal. I'm starting to think that this cc3d board is not compatible with this firmware.
Please help me.
Connected RC input according to this picture:
https://cdn-global-hk.hobbyking.com/media/file/441019279X769333X13.jpg
Dear Werner,
This is not a issue but a request.
I finished to write a windows app, for cablecam setting, just as my android app.
But from PC I'm able to use also long range TX RX for serial, like this one: https://www.amazon.it/gp/product/B0722KH7HZ/ref=oh_aui_detailpage_o03_s00?ie=UTF8&psc=1
So, I want write a more complex app for the cablecam, something like a mission planner. To do this, I need only a simple faeture implemented in the cablecam formware. A GOTO command.
With this command, I want send to cablecam the command like "goto XXXX" where xxxx is a point inside my end limits. When i send command, cablecam must start (with programmed acceleration and speed), go to requested point and decelerate and stop in this point, just as a end point.
In this way I can program from my app all, and send command as request for move the cablecam from many programmed points.
For programming all y points, there is a command to read the actual position, so I don't need nothing more.
What do you think about? Can you do it?
Currently the Hardware is initialized just at the beginning.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.