Uprider mod link for analog joystick

Here is a mod for a Rollplay uprider. Really, it could work for any car that you steer thru the motors. The direction is controller thru an analog joystick, and the max speed is controlled thru a potentiometer. I used a 2x32 Sabertooth motor controller that is directly wired to the joystick and pot, thus requiring no programming knowledge. Would love you input

uprider mod.pdf (1.9 MB)

1 Like

Awesome job Margaret. Thanks for sharing. Definitely going to give this a try!!

Apologies for what I’m sure is a dumb question, but if the vehicle already includes a motor controller for steering, why do you need to replace it with another one? Why can’t you just wire the joystick directly to the stock controller? Thanks for your patience :slight_smile:

Definitely a good question. The current controls in the handle of the uprider pretty much control speed in 1 direction (forward). While I am sure there is a way to wire into the controller, I have no idea how to do that, or if the controller can run each wheel independent of each other. if you figure out a way, PLEASE let me know!

Ah, I was under the impression that it had steering controls.That makes sense now! Thanks!!

I have been looking at the Rollplay Uprider for use indoors and was pleasantly surprised by the controller PCB in it. The PCB in the model I bought is marked W208J B-01g 2018-4-23. I investigated further to see if I can use the original PCB instead of having to replace it with another motor controller and processor, and so reduce the conversion cost.

The PCB is able to drive both motors independently in either direction with speed control, as well as having a battery voltage monitor and charging circuit. The PCB uses a Nuvoton N79E715AT28 microprocessor which is a 8051 based design with 16 KB of flash memory - plenty of room for lots of code.

The PCB connector J11 and processor include 2 analog connections (used for speed / direction control) and a switch used as a drive enable. It is easy to connect a joystick or direction buttons with minor changes to the wiring harness.

They kindly included a programming connector footprint on the PCB (marked J3). A little soldering work allows a 5 pin connector to be attached to the board, which connects to the ISP-ICP programmer available from the https://direct.nuvoton.com/en/isp-icp-programmer webpage for $20 + $6.99 shipping, but you will have to make up the programming cable.

There are some free C compilers (Keil up to 2KB of code, or SDCC) that can produce the required hex files for the programmer.

I ran my first program on the board this weekend using an Adafruit joystick and got very reasonable results. The speed was quite controllable and it was reasonably quiet. I want to make some more changes to the deceleration control.

So far I have found 2 issues:

  1. One of the motor controllers did not work in reverse on one of the motors. This appears to be a bad IC. I have a replacement part on order and will try it. The main issue is that the Uprider never uses the motors in reverse so this part of the PCB cannot be tested with the original Uprider software.
  2. The Uprider has two caster wheels, one in the front and one in the back, to prevent the uprider from tipping over forwards/backwards. The front caster is mounted vertically, but the back caster is mounted at a slight angle backwards. This seems to make it work well going forwards, but when moving in other directions the rear caster rotates and lifts the drive wheels slightly reducing their contact with the ground. There are a couple of washers where the casters are attached to the frame. Removing the washers seems to help but needs more testing.

Two questions for others who have used an Uprider chassis:

  1. Did you have a solution for the back caster wheel to allow it to turn and go backwards ?
  2. What seats have people used and how easily are they to attach to the uprider base ?


1 Like

You da man!!!

HI Nick! I am so impressed- most of this is way over my head, but I can address a couple of things- on both the upriders and Wild things, the back casters are not mounted straight, making backwards (and some steering as a whole) a little wonky. Once you mount a chair on the uprider, it drives better backwards, but depends on where your center is, and still is not great. But, with a 360 degree turning radius and forward, this usually is not an issue.
I have mounted both bike seats and high chair/booster seats to the upriders. I use the small metal upright in front to help mount to something solid, and will add a small base. Sometimes I use a small stool. I will try to attach a picture. While I like the bike seats, I am starting to use more booster/high chair seats, as they come with trays, and some with adjustable foot plates.
Have you thought of making instructions of you mod to share?

Hello Earlywheels,

Thank you for the chair and caster input. Very helpful. I have a Schwinn bike seat on order for my first attempt so your picture is very useful.

I will keep developing my uprider code and try it out on some ‘lucky’ kidoos to see what changes it needs, and then publish the code and instructions, hopefully in the early Fall.

I like having the seats raised a little because I am hoping to use the small button under the platform on the original PCB to allow different speed profiles to be selected, so that it is easy to change as the user progresses, without having to reprogram the board every time.

Sounds like you have some great ideas! I tried removing the metal upright and mounting the seat closer to the footboard, but did not like the clearance I had of feet being too close to the floor. I really like the new upriders over the previous ones- the foot board is now a hard plastic, vs a dynamic one with spring, making it much easier to mount seat to. Which joystick did you use? I have had issues with analog joysticks finding dead center after a while and have had to add this to the program to compensate when the springs aren’t as tight.
Have you also tried to hack a wild thing? I would think it would also be pretty easy, since it seems like you know what you are doing with the boards. I would love to send you the board and controllers from a wild thing if you like (we gut them when we do a mod)



I am using the $20 joystick from Adafruit. It has the same ‘dead center’ issue you describe, but I get around it by having a dead zone in the software response to the joystick so that it has to have a programmable displacement from the center before the motors engage. So long as the joystick is anywhere in the dead zone (adjustable about +/- 7% of the control range) there is no power to the motors. This works well with the motors since they need a minimum power before running. The plot of joystick position (horizontal axis) against motor power (vertical axis) shows the idea.

I am also playing with an exponential joystick/motor response when the uprider is configured to use high speed, to try to keep the sensitivity for fine movements at low power while still be able to get to higher speeds; but that is another story.

I haven’t opened up a Wild Thing yet, but I just ordered one, so that will be next on the list.

The “holy grail” … especially for our kiddos driving w digital single switch input vs proportional/analog joystick … is self-correcting steering. I don’t know how to do it, but my goal is to have the vehicle track straight for at least 30’. Whether it’s via a compass heading, or some kinda gyro-thingamebob, or GPS, or sensors counting wheel rotations … whatever it takes. If anybody out there can solve that one we’d really be ready to rock n roll. Pretty pls

HI! You will want to look at this… Have you thought about posting something with the uprider like this?

NIck! Is there a way to post the directions (step by step with pictures) of how your are modifying the Uprider using the original board? Would love to play with this!

I know this is from last year, but if you take a look at Umobility, their code is using a gyrosensor to track straight. I am currently putting together two wild things with push button and joystick drive, and the gyro is keeping the base tracking in a straight line.https://muse.union.edu/umobility/

1 Like
This site is powered by FIRST Robotics Team 1939 from The Barstow School in Kansas City, MO