Electric longboard bluetooth controller (handy)

An Arduino based pocket-sized bluetooth controller for your electric longboard (or else)

Similar projects worth following
A couple of months ago I started building an electric longboard and since then I've been using as a controller one of those big gun-shaped radios used for RC cars.
Not very good.
They are unnecessary big and heavy, the battery lasts too little (and cost too much) and you can't add any custom functions.

There's also the nunchuck way, which is very common among EL builders, but I don't really like the idea to have to keep my hand in a locked position to have consistent speed. Use the lever to set an acceleration? Even worse.

Having a self made bluetooth controller comes handy and has many advantages:
1 - It's way smaller, even if handmade. An integrated SMD version would be probably half as big.
2 - You can add a bunch of custom functions. Like battery check, lights control, music, autopilot, wormhole and others.
3 - I't open source :)

I want this controller to be cheap, functional, easy to use, pocket sized.

[to be completed]

  • 2 × Arduino Pro mini I used the 3.3v version which goes perfect with the 3.3v logic of the bluetooth module. Also, is consume less power, so the battery lasts longer
  • 1 × ITEAD HC-05 Bluetooth module It has to be HC-05, since HC-06 only acts as slave
  • 1 × ITEAD HC-06 Bluetooth module For the receiver. Also HC-05 works, but 06 is cheaper...
  • 1 × RX PCB board You can either use my version or design your own :)
  • 1 × TX PCB boardSome jumpers

View all 7 components

  • Battery charger

    elmameto04/06/2017 at 21:26 0 comments

    As said before, the controller will feature an internal battery charger. Today I decided to use the MCP73831, so I rapidly drew a schematic (to be honest, I just copied the typical application from the datasheet) and carved it on the CNC.

    Again, a wofis (worked on first shot).

    It's made with tht components, but on the final board will be smd, which means ridiculously small.

    Love it when things just work

    Easier to solder than I thought

    The LED turns on when charging, off when battery full or disconnected.

    Really happy with the result, totally recommend the device. I will not upload this schematic because it's not strictly part of the controller, but something very similar will appear on the final version :)

    Still, you can get the schematic for this standalone version at GitHub/elmameto/chargy

  • Is that even legal?? (receiver prototype)

    elmameto04/04/2017 at 15:12 0 comments

    This morning I've been working on a receiver board. This is the first prototype so, unlike the transmitter, it's meant to work at 5V. This way you can use your onboard BEC without any other electronics.

    The board features:

    • Programming header
    • AT-MODE "switch"
    • ESC connector
    • Header for when the lights will be ready
    • Another generic header, for whatever

    Remember that this is a (working) prototype. The final board will be much smaller and thinner, as everything will be SMD.

    You can find the board design on GitHub

    Just finished carving the board. Went like a charm. 10% of the time carving, 25% drilling, 65% milling it out.

    The board mounts an HC-06 BT module. You can also use an HC-05, but you have to configure it first, since I forgot the prepare the board for the AT-MODE pin...

    Way better than a perf board...

    The real surprise? It worked first shot.

    For real.

    I mean, I plugged it in and it worked. Is that even legal??

  • 3D printable enclosure

    elmameto04/01/2017 at 14:06 0 comments

    Added a primitive 3d printable enclosure for the controller. You can grab it on GitHub. The hole on the top part is thought to be used to place a photo resistor, as a presence sensor.

    Any thoughts on that?

    I don't really like the idea to keep a button constantly pressed...

    More photos later ;)

View all 3 project logs

  • 1
    Step 1

    [The guide is not complete, is more kind of a guideline]

    Gather the PCB and solder on it the various headers and the bluetooth model. Be sure to use the 3.3V version of the Arduino pro mini. You can either solder the Arduino on the board or place a header to make it detachable.

  • 2
    Step 2

    Customize the firmware

    At the beginning of the sketch there are a bunch of #define lines that allow you to configure many parameters, the most important of which are the ones regarding the bluetooth communication (and they have to mach with the receiver's parameters).

    [Will add a detailed description some day]

  • 3
    Step 3

    Flash the firmware on the Arduino

    On this board you obviously need to flash the TX.ino firmware (found in the files tab). You can use the programming header available on the PCB. For general instructions on how to flash an Arduino pro mini look here.

    Note that you need to remove the RX and TX jumpers before flashing, otherwise the bt module will interfere with the communication and you'll get not in sinc error.

    [I'll upload a pinout of the board as soon as I can]

View all 3 instructions

Enjoy this project?



Jim Shealy wrote 04/04/2017 at 16:45 point

I had the same issue as you for on my electric mountainboard. using a nunchuck or X-box trigger was just asking for disaster. Every bump turns into the board trying to get out from under you!

Have you considered adding a momentary switch to allow for deadman cutoff? The rotary is definitely a good way to go to prevent bumps from pulling you off, but the lack of a spring return (which would likely get you back to bumps causing throttle movement) means your board can become a missile if you get knocked off. I've been fortunate enough that my mountain board didn't get away from me (because I was inside a building testing it) but scrubbing the skidmarks off a hundred yards of hallway took a good afternoon to do.

  Are you sure? yes | no

elmameto wrote 04/04/2017 at 19:49 point

Ahahah man I'm sorry for your hallway! 
First of all, thanks for your appreciation, means a lot to me :)

The momentary switch is almost a necessity on a controller like this, in fact that is already implemented. What I mean is that the PCB has a connector made to attach a momentary switch and the firmware is constantly checking if it's pressed. Right now, I'm using the controller "PCB in the hand", without any case, so the switch would be really hard to use. That's why it's connector is constantly shorted by that white jumper you can see in the image gallery, and removing it would cause the board to stop.
Also, on startup, even if the switch is pressed, the firmware waits until the accelerator is all the way down before start sending any non-zero acceleration to the longboard. That prevents you from accidentally turning on the controller full speed and destroying everything.

Also, I don't really like the switch thing... I think it becomes uncomfortable after a while, so I'm considering other options, like:

- A photoresistor, that calibrates every time you turn on the controller. Not the safest thing in the world...

- A touch sensor. Maybe a little bit of an overkill, and you couldn't use it with gloves...

- Modulated infrared distance sensor. I think this is the best in the list, and I'll try implementing it someday (if no better idea jumps out)

Let me know what you think, totally open to suggestions :)

  Are you sure? yes | no

Rogan Dawes wrote 06/29/2017 at 09:23 point

I'd be inclined to implement something on the board itself, to be sure that someone is still standing on it! 

Thinking of failure modes for a switch on the controller, if you fall off, you may be inclined to hold tighter to the controller than drop it, preventing it from operating.

Obviously, you could cover a sensor on the board, but you could equally well tape over the switch on the controller if you wanted to defeat it!

Perhaps as you do for the accelerator dial, require that the user climb off the board (activate the dead man switch in some way to "prove" that it is functional) while the board is stationary, before accepting any motion controls?

  Are you sure? yes | no

Kirschner Christoph wrote 04/01/2017 at 17:19 point

Cool idea!! I like it!!

  Are you sure? yes | no

elmameto wrote 04/02/2017 at 10:41 point

Thanks! Still at the beginning, but may become something interesting :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates