Crius SE board does not register outputs or D8/D12 inputs
Crius SE board does not register outputs or D8/D12 inputs
Hi everyone, I have recently embarked on a multiwii project. I am completely new to the game and unfamiliar with anything that isn't clearly written down on a starter guide (eg here http://www.rcgroups....hmentid=4486530)
I am using flighttech 6a escs and an orange 6ch rx. The flighttech escs work fine with other flight controllers (eg naza) and when connected directly to the rx.
I have tested the crius on a calibrated hobbywing ESC (18a) and set my TX end-points for 1000-1500-2000. I have used this ESC on separate projects including with a DJI NAZA. The ESC was calibrated for up/down/mid travel points before being connected to the Crius.
Unfortunately, despite setting all AUX1/2 motor-arm settings to 'ARM' on the GUI switchboard matrix, I have had no luck in getting any motor response!
When the ESC starts up, it delivers a normal startup tone. The throttle is therefore presumably not seen to be above zero (as would be the case with rapidly repeating beeps that continue for as long as the throttle is seen to be too high to arm the ESC).
I have noticed that on the GUI, none of the motor outputs (eg front_L) show any change. Is this normal? It would seem to me that the board is not sending any signal to the motor outputs, despite being armed. Even when performing the 'arm' yaw stick movement in either direction, the problem does not go away.
The other issue I have is that none of the AUX2 channels work! (D8/D12). I am assured that it is the board that is at fault since both the recievers 'aux 1' and 'aux 2' outputs will operate the crius' 'aux 1' channel if wired accordingly. However, neither of the receiver's channels will work on 'aux 2' (ie when connected to d8/d12).
So then, having scoured the realms of other multiwii / arduino forums for info, I have been recommended by Graham from quadframe.com that this is the best place to help. Any pointers would be much appreciated
Like This Unlike
I am using flighttech 6a escs and an orange 6ch rx. The flighttech escs work fine with other flight controllers (eg naza) and when connected directly to the rx.
I have tested the crius on a calibrated hobbywing ESC (18a) and set my TX end-points for 1000-1500-2000. I have used this ESC on separate projects including with a DJI NAZA. The ESC was calibrated for up/down/mid travel points before being connected to the Crius.
Unfortunately, despite setting all AUX1/2 motor-arm settings to 'ARM' on the GUI switchboard matrix, I have had no luck in getting any motor response!
When the ESC starts up, it delivers a normal startup tone. The throttle is therefore presumably not seen to be above zero (as would be the case with rapidly repeating beeps that continue for as long as the throttle is seen to be too high to arm the ESC).
I have noticed that on the GUI, none of the motor outputs (eg front_L) show any change. Is this normal? It would seem to me that the board is not sending any signal to the motor outputs, despite being armed. Even when performing the 'arm' yaw stick movement in either direction, the problem does not go away.
The other issue I have is that none of the AUX2 channels work! (D8/D12). I am assured that it is the board that is at fault since both the recievers 'aux 1' and 'aux 2' outputs will operate the crius' 'aux 1' channel if wired accordingly. However, neither of the receiver's channels will work on 'aux 2' (ie when connected to d8/d12).
So then, having scoured the realms of other multiwii / arduino forums for info, I have been recommended by Graham from quadframe.com that this is the best place to help. Any pointers would be much appreciated
Like This Unlike
Re: Crius SE board does not register outputs or D8/D12 input
1. you need to calibrate your escs to [1000-2000] full range.
2. you need to uncomment
//#define RCAUXPIN8
//#define RCAUXPIN12
in config.h to enable aux pin reading.
3. when you arm/disarm using the yaw (or roll) stick, the motor levels should jump between 1000 and minthrottle (usually around 1200). once armed, increasing the throttle should increase the motor levels. you can try this even without escs connected. does that work?
2. you need to uncomment
//#define RCAUXPIN8
//#define RCAUXPIN12
in config.h to enable aux pin reading.
3. when you arm/disarm using the yaw (or roll) stick, the motor levels should jump between 1000 and minthrottle (usually around 1200). once armed, increasing the throttle should increase the motor levels. you can try this even without escs connected. does that work?
Re: Crius SE board does not register outputs or D8/D12 input
1. you need to calibrate your escs to [1000-2000] full range.
ESCs have been calibrated as you advised.
2. you need to uncomment
//#define RCAUXPIN8
//#define RCAUXPIN12
in config.h to enable aux pin reading.
This has been done, but it introduced a new problem: now the accelerometer cannot be turned off, regardless of the aux1/aux2 channel values.
3. when you arm/disarm using the yaw (or roll) stick, the motor levels should jump between 1000 and minthrottle (usually around 1200). once armed, increasing the throttle should increase the motor levels. you can try this even without escs connected. does that work?
Thanks for the tip, but even without the escs connected, this has not resulted in any change. The motor levels remain at 1000 regardless of any yaw stick movement or 'arm' status on the switchboard.
Thanks for the tips though
Re: Crius SE board does not register outputs or D8/D12 input
Just a quick update....the accelerometer problem has mysteriously gone away. No idea why...all I did was leave the board unattended for fifteen minutes. Wierd.
Re: Crius SE board does not register outputs or D8/D12 input
On a side note, how do you calibrate the gyro? There doesn't seem to be a switch on the gui for it
Re: Crius SE board does not register outputs or D8/D12 input
the gyros auto calibrate each time you power on the copter (needs to be still).
when you update the boxes (or pid values), you need to click "write" to commit the changes to the copter.
when you update the boxes (or pid values), you need to click "write" to commit the changes to the copter.
Re: Crius SE board does not register outputs or D8/D12 input
Bumped this post to see if anyone can help me with the motor readings? They're still stuck at zero in the GUI even when the 'ARM' switches are turned on!
I have also tried turning off the 'arm' switches and instead arming manually with full yaw right. This does not work either.
I have also tried turning off the 'arm' switches and instead arming manually with full yaw right. This does not work either.
Re: Crius SE board does not register outputs or D8/D12 input
can you take a screen shot of the gui after reading the eeprom settings?
Re: Crius SE board does not register outputs or D8/D12 input
@noobee I will post one on this thread as soon as I've got it processed. If you or anyone else stuck around to check it out, I am sure I plus many future board users would appreciate your efforts
Re: Crius SE board does not register outputs or D8/D12 input
here you go...hope that helps. Let me know if any other screen grabs are needed.
Re: Crius SE board does not register outputs or D8/D12 input
yamax87 wrote:here you go...hope that helps. Let me know if any other screen grabs are needed.
1. all your rates (pid and tx) and expo (tx) are all zeros. i don't have a copter with me, but i believe those should be non-zeros? that may be causing the control outputs to be clamped to zero.
2. is your tx control all calibrated and neutral? your tx roll, pitch and yaw are 1400 at neutral (should be 1500). your throttle is 1038 (should be 1000 on idle). your aux1 and aux2 look reasonable for the "low" position.
3. i have not used the arm switch boxes, but you can try to disable them first and just use throttle idle + yaw right/left to arm/disarm. once it's working, then reactivate the arm switch boxes.
4. is the copter flat and stationary? if so, the acc looks weird. if you are holding your copter at an angle, then you have super steady hands since the gyros are all zeros
Re: Crius SE board does not register outputs or D8/D12 input
You should reflash your board to reset all the settings.
Use the latest DEV Version - it's working well.
In config.h you can enable the CRIUS_SE - so it's quite easy to get the correct settings for all your sensors.
Use the latest DEV Version - it's working well.
In config.h you can enable the CRIUS_SE - so it's quite easy to get the correct settings for all your sensors.
Re: Crius SE board does not register outputs or D8/D12 input
Hi guys, the motors are working!
I disabled the 'arm' command and fired up normally. I also adjusted the 'rc rate' graph to 0.95 with a little (I think 0.30) expo.
But the 'arm' command on the switches, for the meantime, doesn't work for me
Still, I am much closer to having this quad up and running (currently just need an atom-sized hex driver to deal with grub screws that could be mistaken for a grain of sand).
Thanks for all the help so far
I disabled the 'arm' command and fired up normally. I also adjusted the 'rc rate' graph to 0.95 with a little (I think 0.30) expo.
But the 'arm' command on the switches, for the meantime, doesn't work for me
Still, I am much closer to having this quad up and running (currently just need an atom-sized hex driver to deal with grub screws that could be mistaken for a grain of sand).
Thanks for all the help so far
Re: Crius SE board does not register outputs or D8/D12 input
Your PID's are very weird, I don't know if you've done this already but you should clear the eprom and load a fresh code.
When u use the arm boxes select the one you need and not all of them, only low, mid or high depending on the switch you use.
When you select all the boxes, you can't disarm the motors.
When u use the arm boxes select the one you need and not all of them, only low, mid or high depending on the switch you use.
When you select all the boxes, you can't disarm the motors.
Re: Crius SE board does not register outputs or D8/D12 input
@thorsten and Keeves,
The code is tailored to the crius SE and I downloaded it from here (bottom, not top post):
http://multikopter.co.uk/forum/index.ph ... y-version/
I appreciate that if you're used to looking at default multiwii PID values for the standard wii gyro / accell, you may be a little surprised by some of the readings. The sensors on the crius are a little different to these. The way that the signals are processed is also probably a little different, although the details go right over my head
If I can get the board to work with this code, then I'll stick with it. For the meantime, it seems to work fine.
However, I appreciate the tips to re-flash the board, which I will look into if it flies like an unsteady brick on smirnoff
The code is tailored to the crius SE and I downloaded it from here (bottom, not top post):
http://multikopter.co.uk/forum/index.ph ... y-version/
I appreciate that if you're used to looking at default multiwii PID values for the standard wii gyro / accell, you may be a little surprised by some of the readings. The sensors on the crius are a little different to these. The way that the signals are processed is also probably a little different, although the details go right over my head
If I can get the board to work with this code, then I'll stick with it. For the meantime, it seems to work fine.
However, I appreciate the tips to re-flash the board, which I will look into if it flies like an unsteady brick on smirnoff
Re: Crius SE board does not register outputs or D8/D12 input
i think you're better off starting from the current dev version (20120225), which already has support for the crius se board and, important, has bug fixes and improvements to the baro altitude hold since the version that you have.
i have exactly the same board with an older firmware and used all default pid settings, which works very well.
if you do want to reset the eeprom settings, you need to flash an older version of the firmware and then re-flash with the version that you want.
i have exactly the same board with an older firmware and used all default pid settings, which works very well.
if you do want to reset the eeprom settings, you need to flash an older version of the firmware and then re-flash with the version that you want.
Re: Crius SE board does not register outputs or D8/D12 input
Hi noobee, I downloaded the latest firmware (20120225) but I can't upload it in the arduino programming environment for some reason.
I appreciate it sounds a stupid question, but what should I do to get it onto my board/ Every time I try to open it, I get the message "Processing can only open its own sketches and other files ending in .pde". All the files in the multiwii firmware end in .h ...I have never had a problem with this with the old crius code...what's going on?
I appreciate it sounds a stupid question, but what should I do to get it onto my board/ Every time I try to open it, I get the message "Processing can only open its own sketches and other files ending in .pde". All the files in the multiwii firmware end in .h ...I have never had a problem with this with the old crius code...what's going on?
Re: Crius SE board does not register outputs or D8/D12 input
...and just for the record...every time I connect the board to the GUI it now displays a horrific DEBUG2 reading that accumulates to a few hundred in about a minute.
The original criusSE code is still on the board. I have no idea how to get it off now that I can't upload the recommended 20120225 code. (see post above)
The original criusSE code is still on the board. I have no idea how to get it off now that I can't upload the recommended 20120225 code. (see post above)
Re: Crius SE board does not register outputs or D8/D12 input
are you using the arduino 1.0 ide, which can open the main .ino file?
for your debug2 problem, it may be the case that you are not using matching versions of the firmware and the gui. they need to match, otherwise the gui is misinterpreting the telemetry data coming from the crius.
for your debug2 problem, it may be the case that you are not using matching versions of the firmware and the gui. they need to match, otherwise the gui is misinterpreting the telemetry data coming from the crius.
Re: Crius SE board does not register outputs or D8/D12 input
Hi Noobee, the arduino version I'm using is 0023 as originally recommended.
Should I change to 1.0 to upload the 20120225 code?
The firmware and the GUI are both from here: http://multikopter.co.uk/forum/index.ph ... y-version/
The attached file provides both the firmware and the GUI. I am using both at the moment.
Should I change to 1.0 to upload the 20120225 code?
The firmware and the GUI are both from here: http://multikopter.co.uk/forum/index.ph ... y-version/
The attached file provides both the firmware and the GUI. I am using both at the moment.
Re: Crius SE board does not register outputs or D8/D12 input
yes, i think you can switch to arduino 1.0 ide.
there *might* be an orientation issue for the crius se board in the very very latest version of the dev release. i believe Alex updated sensor orientation in the core code and it's unclear if all the various board types, including the crius se, have been updated accordingly. i'll give it a shot when i can get at my copter..
there *might* be an orientation issue for the crius se board in the very very latest version of the dev release. i believe Alex updated sensor orientation in the core code and it's unclear if all the various board types, including the crius se, have been updated accordingly. i'll give it a shot when i can get at my copter..
Re: Crius SE board does not register outputs or D8/D12 input
Ok, so I'm now using arduino 1.0 and tried to upload the multiwii_dev_20120225 code.
No joy.
Once again, I got this message when I attempted to upload the code:
MultiWii_dev_20120225.cpp: In function 'void i2c_init()':
Sensors:121: error: 'I2C_PULLUPS_ENABLE' was not declared in this scope
The message apparently relates to this command line under the 'sensors' section of the code:
TWSR = 0
Apparently I need to define the pullups.
The board has been defined as a crius SE in the 'config.h' section, but as a layman in this field, I am not sure how to define the pullups.
Any ideas?
No joy.
Once again, I got this message when I attempted to upload the code:
MultiWii_dev_20120225.cpp: In function 'void i2c_init()':
Sensors:121: error: 'I2C_PULLUPS_ENABLE' was not declared in this scope
The message apparently relates to this command line under the 'sensors' section of the code:
TWSR = 0
Apparently I need to define the pullups.
The board has been defined as a crius SE in the 'config.h' section, but as a layman in this field, I am not sure how to define the pullups.
Any ideas?
Re: Crius SE board does not register outputs or D8/D12 input
hmmm. ok, that version should compile properly, i just tried it on my machine.
in any case, there is a new pre-release version. try this:
1. download http://multiwii.googlecode.com/files/Mu ... rsion1.zip
2. unpack a pristine copy to a new directory.
3. start arduino 1.0 ide and open MultiWii_2_0_preversion1.ino
4. click on the config.h tab
5. find the following line and uncomment the definition:
from
//#define CRIUS_SE // Crius MultiWii SE
to
#define CRIUS_SE // Crius MultiWii SE
6. click on the "verify" icon to compile (btw i've tried compiling the unmodified sources, which also work).
does it compile?
in any case, there is a new pre-release version. try this:
1. download http://multiwii.googlecode.com/files/Mu ... rsion1.zip
2. unpack a pristine copy to a new directory.
3. start arduino 1.0 ide and open MultiWii_2_0_preversion1.ino
4. click on the config.h tab
5. find the following line and uncomment the definition:
from
//#define CRIUS_SE // Crius MultiWii SE
to
#define CRIUS_SE // Crius MultiWii SE
6. click on the "verify" icon to compile (btw i've tried compiling the unmodified sources, which also work).
does it compile?
Re: Crius SE board does not register outputs or D8/D12 input
Hi noobee, sorry for the delay in replying-basically I've been busy on coursework I'm going through your steps now-watch this space
Re: Crius SE board does not register outputs or D8/D12 input
It compiles...but when I try to upload to the board, I get this message:
avrdude: stk500_getsync(): not in sync: resp=0x00
Tearing my hair out here...but at the same time, your persistence in helping me gives me reason for patience
avrdude: stk500_getsync(): not in sync: resp=0x00
Tearing my hair out here...but at the same time, your persistence in helping me gives me reason for patience
Re: Crius SE board does not register outputs or D8/D12 input
OK just hooked up the board to the GUI. I am assuming the old code is still on the board, because I get the following message on the graph:
"GUI vs Arduino: Version or Buffer size mismatch"
Help!
"GUI vs Arduino: Version or Buffer size mismatch"
Help!
Re: Crius SE board does not register outputs or D8/D12 input
yamax87 wrote:It compiles...but when I try to upload to the board, I get this message:
avrdude: stk500_getsync(): not in sync: resp=0x00
Tearing my hair out here...but at the same time, your persistence in helping me gives me reason for patience
in arduino 1.0 ide,
- under tools/board/... make sure you select arduino pro/promini 5v 16mhz atmega328.
- also check that you selected the right com port.
you need to match the firmware version with the gui version.
Re: Crius SE board does not register outputs or D8/D12 input
in arduino 1.0 ide,
- under tools/board/... make sure you select arduino pro/promini 5v 16mhz atmega328.
- also check that you selected the right com port.
you need to match the firmware version with the gui version.
The board and the com port (com7 in my case) are both selected as you mentioned.
However, I previously used the 'Arduino Deumilanove' tab instead. About 1 in 10 times, this would permit a successful compilation.
The board will not compile at all on promini 5v 16mhz atmega328 as far as I can see.
The arduino version is 1.0.
What else could be wrong?
On a side note, I noticed that my board isn't dead-centre, but shifted to the left of the frame's cg to make way for a small rx. Should it be directly in the centre?
Thanks for all the help so far!
The multiwii version is 2_0.
What el
Re: Crius SE board does not register outputs or D8/D12 input
the fact that you are not getting consistent behaviour of your ide is quite a problem.
you don't need the board to be located at the frame geometric center or center of gravity.
perhaps the best approach now is to find a working setup local to you and compare notes.
you don't need the board to be located at the frame geometric center or center of gravity.
perhaps the best approach now is to find a working setup local to you and compare notes.
Re: Crius SE board does not register outputs or D8/D12 input
Thanks for the tip. Easier said than done where I live, but I'll give it a go...
I've also found that while the pitch axis was pretty easy to tune (worked well on default 4.0 P, 0.030 I and 15 D tuning), the roll and yaw axis are way off regardless of pid adjustment. No idea why, but even after I placed the board at the cg (before I read your last post) they are still far from flyable.
Sigh...
I've also found that while the pitch axis was pretty easy to tune (worked well on default 4.0 P, 0.030 I and 15 D tuning), the roll and yaw axis are way off regardless of pid adjustment. No idea why, but even after I placed the board at the cg (before I read your last post) they are still far from flyable.
Sigh...
Re: Crius SE board does not register outputs or D8/D12 input
i really don't think you need to adjust the pid parameters from the stock values. your pc/mac setup needs to be correct first, that means a working ide, a reliable way to compile the sources, upload the firmware and connect the corresponding (precompiled) gui version. i suspect that there's something off about your setup at this time, and being able to compile 1 in 10 times is really unusual, as the compile process should really be deterministic.
i believe, once you sort out your setup issues, the copter would fly reasonably. most copters can fly with the stock pid parameters.
i believe, once you sort out your setup issues, the copter would fly reasonably. most copters can fly with the stock pid parameters.
Re: Crius SE board does not register outputs or D8/D12 input
Bumped this post again for anyone who's still having the same problem. Turns out if you click 'upload' or 'compile' (depending on your version of arduino), and then wait approx 6 seconds before plugging the USB adaptor in, the code will upload fine.
I am sure this makes perfect sense to some geek in an Area 51 basement who codes the next generation of AI for a living.
To me, however, the root cause remains a mystery.
I have since found the roll and yaw stability of my quad to be non-existent, regardless of PID tuning. The gyro readings on an undisturbed board with multiwii 2.0 code are perfectly flat on the multiwii GUI. Any ideas?
I am sure this makes perfect sense to some geek in an Area 51 basement who codes the next generation of AI for a living.
To me, however, the root cause remains a mystery.
I have since found the roll and yaw stability of my quad to be non-existent, regardless of PID tuning. The gyro readings on an undisturbed board with multiwii 2.0 code are perfectly flat on the multiwii GUI. Any ideas?
Re: Crius SE board does not register outputs or D8/D12 input
if all of those having problems with the mwc board will just buy a cheap kk board version 5.5 you wont have any more problems easy thing i have ever done,i took my mwc board out of mine switched to kk board version 5.5 ended all the headaches i was having and my quad flies great and im new to quads.