Wireless Wii Nunchuck *TESTERS WANTED

austindavid said:
hey guys -- It has come to my attention that I'm a dingus. I mislabeled 24 wiiceivers we made on 7/13 - if you got one labeled with 7/13 or 7/14, note that the servo pins on the top are *normal*, same as your RC receiver. The RC pattern is (S + -), with power in the middle. The ground pin (black or brown on the ESC cable) is near the edge of the wiiceiver, signal (white or yellow probably, not red) S is toward the nunchuck. Don't try to adjust your servo cable, just plug it in. Maybe sharpie-out the marks on there to avoid confusion.

So sorry about that! We're updating the ones that go out now. If this caused any problems please let us know, we'll make it right.
To clarify, if one looks directly at the wii receiver with the red Solarbotics board in the bottom right corner, the 3 pins (found to the left of that red board) would now be labeled S,+,- :?:
 
I received my wiimote last Thursday. It has worked flawlessly for me so far and I love the cruise control feature.

Fantastic product guys! 8)
 
Hi,

This question is probably for David (austindavid).

I'm putting my own PCB together and will need to change some of the pin assignments in the code.
In Pinouts.h pin 13 is used to set the board version in the function chipSelect, then the board version is used to access the pinMap in the function pinLocation.

There is a comment chipSelect stating "// future: perform analogRead on pin 23"

So, should I use this input along to read a voltage divider to identify my board? Then add another column in the pinMap array with my pin assignments?

Cheers,

Peter
 
phomann said:
Code:
I'm putting my own PCB together and will need to change some of the pin assignments in the code.
In Pinouts.h pin 13 is used to set the board version in the function chipSelect, then the board version is used to access the pinMap in the function pinLocation.

There is a comment chipSelect stating "// future: perform analogRead on pin 23"

So, should I use this input along to read a voltage divider to identify my board? Then add another column in the pinMap array with my pin assignments?
Hi Peter-

If you only change the pinouts, and want me to keep your layout in the main code so you can easily pull my updates, then yes -- add to pinouts.h as another column and fix the CSEL code. I can help there. If you want to maintain your own port that's fine, you can just hard code in your pin values.

austindavid.com/wiiceiver has a link to the protoboard layout with pics, if you want to give it a whirl. The PCB model (Eagle) is available on GitHub if you want to print your own, or we can send you a kit.

--austin
 
Hi Austin,

Thanks for the reply. I already have one of your boards on it's way. I'm just looking at making a smaller version.

This is what I was thinking for the code. This would allow me to set up a 50% voltage divider with two 4K7 resistors. The ideal value is 500 but the case gives a safety margin for the component tolerance and noise on the input. We could tighten it up a bit I guess. As more boards are made they could be slotted into the switch statement.

Code:
int AnalogSelectPin = A0;    // select the input pin for the potentiometer

void chipSelect (void) 
{
  pinMode(13, INPUT_PULLUP);
  if (digitalRead(13) == HIGH) 
  {
    CSEL = 0;
  } 
  else 
  {
    // future: perform analogRead on pin 23
    int selectValue = analogRead(AnalogSelectPin);
     
 #ifdef DEBUGGING_PINS
    Serial.print("selectValue: ");
    Serial.println(selectValue);
 #endif

     switch(selectValue)
     {
       case 450 ... 549:
         CSEL = 2;
         break;
 //      case 550 ... 649:
 //        CSEL = 3;
 //        break;
       default: 
         CSEL = 1;
         break;
    }
  }

And the pin map would then be (I haven't put my changes in yet);
Code:
int pinLocation(int pinID) 
{
  int pinMap[6][3] = 
  {
  // v1, v2
    {8,   8,  8}, // RED_LED     any digital pin
    {7,   6,  6}, // GREEN_LED   any digital pin
    {10,  9,  9}, // ESC_PPM     PWM required
    {9,  11,  11}, // WII_POWER   any digital pin
    {19, 19,  19}, // WII_SCL     A5, don't change
    {18, 18,  18}, // WII_SDA     A4, don't change
  };


Once I'm done, I'll hand the code over for you to look after.

Cheers,

Peter
 
phomann said:
Hi Austin,

Thanks for the reply. I already have one of your boards on it's way. I'm just looking at making a smaller version.

Cool, I'm curious to see what you come up with. The Eagle files are up on github also -- if you find a better layout, please share. I will probably do another run of boards, and I can incorporate your changes then. Among changes, I'm thinking of adding breakout pads for the unused pins, and maybe integrating the nunchuck port directly on the PCB. This would make it a little *bigger* though, but removes 8 solder joints.

The code looks about right; that ideal value is more like 511-512 +/- 5%, a bucket from ~450-550 should be fine. Send a pull request when you have it working. I haven't tagged it yet, but there's a new version at HEAD which I think I like a bunch, I'll put some miles on it today.

Keep us posted, and good luck!
--Austin
 
Hi Austin,

It is a Surface mount board. The size should be about 1" x 1.5"

It will be my contribution to this fantastic development.

Cheers,

Peter
 
Hi Austin,

Yes, I've done that. It should be a neat tiny board. Hopefully I'll be able to post a bit more later today.

Cheers,

Peter
 
hi guys,
I'm using a slightly modified version of the wiiceiver on an arduino nano. and I have a question.
just ordered a new esc for my second board. I ordered the alienpowersystems 150A 8s - looked at Austin's code in git and saw that there used to be some issues with flier esc. from what I remember alienpowersystems esc is based on the flier.
I just want to know if the problem is fixed? does anyone use alien esc and can provide some feedback?
should I cancel and get another esc? (don't want to go back to the bulky rc transmitter)
thank you,
Yossi
 
I have the alien 8s 120 so I would like to know this too. I bought the plug and play version of your Wiimote. Will it work with my alien ESC?
 
Phomann, just what i was sugesting.

So much spare room inside the Nunchuck wiiciever...its begging for an Adruino interface and some rc type connectors on the outside.

My current Adruino Nano V3.0 version, i too am working on an in case version.

IMG_20140622_150700-300x225.jpg
 
Yes, it works fine with the Alien ESCs. Austin and I both use similar ESCs as the Alien ESCs. You shouldn't have any issues - strictly plug and play.

As for the issues that I had previously it was due to a bad wiiceiver. It's since then been fixed and working fine. I don't need to stick out the wii nunchuck receiver either it's hidden in my enclosure. Remote control doesn't drop either.
 
Nikimce said:
I have the alien 8s 120 so I would like to know this too. I bought the plug and play version of your Wiimote. Will it work with my alien ESC?

Torque and I use the flier dual ESC. For whatever reason his seems better than mine, bit mine does work really well. The latest code, I think Car_UV43, looks good. I did like 75 miles this week on this firmware.

My settings:
1.7ms throttle, 1.3ms brake (no auto)
100% startup power
Hard acceleration


Basically don't let the ESC attempt any smoothing. It introduces control issues with the smoothing in wiiceiver, like power comes in delayed.
 
thank you guys for your answer. will wait for the alien esc.
Austin - saw you have made some changes to the code in git. should we use it?
 
viper said:
thank you guys for your answer. will wait for the alien esc.
Austin - saw you have made some changes to the code in git. should we use it?

If you want to give it a shot, go for it. I am trying to get torqueboards over here so I can get some real feedback, before I start soliciting further testing. The cruise is definitely better. If you liked raw throttle (just using the stick) before, this might be weird. I didn't use the stick much before, my board is too torquey, but this new smoothing method makes it usable for me.


This doesn't really improve the actual behavior of the unit -- I'm only tinkering with the throttle / cruise programming. The untagged code at HEAD is what I used as of yesterday.
 
viper said:
Austin - saw you have made some changes to the code in git. should we use it?

Don't use it. Or, if you do, please be careful. Mine has done some weird things and I want to spend more time checking if it's the nunchuck, ESC, or wiiceiver.

The one feature which is very solid is a simple change to cruise control; the harder you press the stick, the quicker it changes your cruise speed. It's a very simple change, and if anyone's interested I can make a quick branch with just that feature. LMK.
 
ok.
the cruise control change sounds great!
also from my little time with the wiiceiver, what I would like to change /see changed is that the throttle (without) c would be much less responsive to minor stick movement - perhaps an exponent throttle curve.
also - using c - the regrab cruise speed function almost always (in my setup) causes me to almost fly off my board.
these are my 2 cents, will try to modify the code myself to fix all that but my knowledge is quite limited when it comes to arduino.
 
viper said:
ok.
the cruise control change sounds great!
also from my little time with the wiiceiver, what I would like to change /see changed is that the throttle (without) c would be much less responsive to minor stick movement - perhaps an exponent throttle curve.
also - using c - the regrab cruise speed function almost always (in my setup) causes me to almost fly off my board.
these are my 2 cents, will try to modify the code myself to fix all that but my knowledge is quite limited when it comes to arduino.

Try the latest on github. It fixes the throttle & cruise for you.

For regrab cruise, you'll want to change the timeout because your board slows down faster than mine. You can also soften the cruise return; as coded, it comes back at 4x the normal smoothing rate, which is *almost* as fast as instant.

option 1) timeout
# Wiiceiver line 65
#define THROTTLE_CRUISE_RETURN_MS 5000 // time (ms) when re-grabbing cruise will use the previous CC level

change 5000 to something much smaller, like 1000 (1s). 0 would disable it entirely.

option 2) smoother:
# Throttle.h line 203
} else if (throttle < autoCruise) { // auto cruise?
throttle += 4 * THROTTLE_CC_BUMP;
}

change that 4 to 0.25; if that's too slow, try 1
 
austindavid said:
viper said:
ok.
the cruise control change sounds great!
also from my little time with the wiiceiver, what I would like to change /see changed is that the throttle (without) c would be much less responsive to minor stick movement - perhaps an exponent throttle curve.
also - using c - the regrab cruise speed function almost always (in my setup) causes me to almost fly off my board.
these are my 2 cents, will try to modify the code myself to fix all that but my knowledge is quite limited when it comes to arduino.

Try the latest on github. It fixes the throttle & cruise for you.

For regrab cruise, you'll want to change the timeout because your board slows down faster than mine. You can also soften the cruise return; as coded, it comes back at 4x the normal smoothing rate, which is *almost* as fast as instant.

option 1) timeout
# Wiiceiver line 65
#define THROTTLE_CRUISE_RETURN_MS 5000 // time (ms) when re-grabbing cruise will use the previous CC level

change 5000 to something much smaller, like 1000 (1s). 0 would disable it entirely.

option 2) smoother:
# Throttle.h line 203
} else if (throttle < autoCruise) { // auto cruise?
throttle += 4 * THROTTLE_CC_BUMP;
}

change that 4 to 0.25; if that's too slow, try 1

I just got mine on Saturday and it's working great. You guys did a great job with the production and programming of this!

I do agree with viper and a few other comments that the throttle is pretty intense. I'm using a Mamba Monster 2 and I feel like this chip/wii-remote has really opened the thing up. I was going to look at making some the adjustments you recommended, do you just recommend an uno/nano and some jumpers to get this connected? I'm not sure which build I have in my possession (says 7/13)

Thanks again.
 
ehock said:
I just got mine on Saturday and it's working great. You guys did a great job with the production and programming of this!

I do agree with viper and a few other comments that the throttle is pretty intense. I'm using a Mamba Monster 2 and I feel like this chip/wii-remote has really opened the thing up. I was going to look at making some the adjustments you recommended, do you just recommend an uno/nano and some jumpers to get this connected? I'm not sure which build I have in my possession (says 7/13)

Thanks again.

yeah, the throttle can be very intense if you have a torquey setup. The new code is way better for that. All the production boards have 1.0 on them. With that build + torquey board, I recommend you use C + up/down to manage throttle, then drop C and down for brakes. Practice a few times, different ESCs do different things with braking input. Wiiciever sends exactly the nunchuck value for brakes, no smoothing -- about halfway down on the nunchuck == 45 degrees / 1250ms, which *should* be "half brakes", but your ESC may vary.


austindavid.com/wiiceiver has instructions:
https://docs.google.com/document/d/1OMyipDXwUIevf9hT1LSHdhx5EEQ6rP9OY-iQ6avuLok/edit#heading=h.jlvpo0mxx6oz

1.1 : https://github.com/jaustindavid/wiiceiver/releases/tag/v1.1-alpha

for reference, 1.0: https://github.com/jaustindavid/wiiceiver/releases/tag/v1.0.0
(click around on github, they're easy to find)

I use an Uno for updating, it seems to work very well. I highly recommend. Torqueboards and I played with the new program last night; the throttle works well for his board also, though he did have some gremlins with two units (one brand new and one very old). We're still chasing those, I think it's electrical.

I've got ~30-50 miles on this new code and I've checked it enough that I want more people to try it.

There are 3 different throttle programs in 1.0:
stick only: a rate-limited throttle advance; if you slam the stick forward, the throttle will slowly rise to 100% after about 10s. This is adaptive (technically, a floating ceiling) so if you get the board to 100%, then drop to idle, then slam it again it'll jump back to 100% pretty fast.
C + stick: cruise control. more pressure == faster cruise change. You can more gently increase / decrease your cruise speed. Drop C to coast or use brakes. With no stick input for up to 5s, you can hit C to quickly return to the previous cruise speed.
Z + stick: "raw" throttle. 50% stick == 50% signal to ESC; 100% = 100% instantly. If you're into that sort of thing.

Z+stick or just stick: down stick == brakes, no smoothing. Slam it down, you get 100% brakes.
C+stick down == reduce throttle

make sense? If you just use the stick with 1.0, it's very friendly. Z+stick == aggressive. C+stick = "cruise control", set a speed and hold C to keep that same throttle value.
 
austindavid said:
There are 3 different throttle programs in 1.0:
stick only: a rate-limited throttle advance; if you slam the stick forward, the throttle will slowly rise to 100% after about 10s. This is adaptive (technically, a floating ceiling) so if you get the board to 100%, then drop to idle, then slam it again it'll jump back to 100% pretty fast.
C + stick: cruise control. more pressure == faster cruise change. You can more gently increase / decrease your cruise speed. Drop C to coast or use brakes. With no stick input for up to 5s, you can hit C to quickly return to the previous cruise speed.
Z + stick: "raw" throttle. 50% stick == 50% signal to ESC; 100% = 100% instantly. If you're into that sort of thing.

Z+stick or just stick: down stick == brakes, no smoothing. Slam it down, you get 100% brakes.
C+stick down == reduce throttle

make sense? If you just use the stick with 1.0, it's very friendly. Z+stick == aggressive. C+stick = "cruise control", set a speed and hold C to keep that same throttle value.

Thanks austindavid, as I told torqueboards recently...you guys seriously provide some phenomenal feedback and support. Thanks to this forum the whole process of building my board was a breeze.

As far as my current setup goes, your explanation makes perfect sense. I was able to figure out most of the control & setup per the instructions on your site...and you're right, i've found using the C button the most 'gentle' acceleration.

Interesting that you mentioned full throttle (no Z pressed) should accelerate up to 100% in 10 seconds. I think it takes mine about 2-3 seconds max if i push full throttle...without slamming it either.

I'm also running a single 63mm motor and 6S setup so it may be adding a bit more torque?

Anyway, I may just pickup a uno and join your alpha 1.1 tester team...
 
just got my 2 new boards today..
will try to set them up before the weekend, will try one on the gargoyle and keep one for the next board customer :D
..Cool!
 
Back
Top