Standard Remote - and controlling speed

Hi folks, built my first Cyberbrick model with some intial model file issues that the designer quickly resolved.
Paired the modules and its all talking - so thats great.

The Model was the RC Airboat found here RC airboat by TheBavarianModelMaker MakerWorld: Download Free 3D Models

The problem I have is understanding how throttle is meant to work, see on a mormal transmitter you have 1 centering stick and 1 loose stick - that usually advances bottom to top for a throttle range.

With the Cyberbrick standard remove, both sticks are centering and it looks what happens is the servo range gives throttle in the middle, and 0 throttle op and bottom of the stick . Calibrating the ESC and other normal steps dont seem to fix it. I am wondering if this is programing % wise on the Servo \ PPM percentages or something.

Anyone used to RC aircraft\heli\drone transmitters - and now finding throttle programming on the cyberbrick one a bit wierd?

Hi DruiD,

You are making good points there and I think this is one thing where cb needs to improve in the future. The support for external ESC/motors is not something thats implemented really from what i can see. While its possible with the PWM outputs and a DIY power distribution.
Currently in this project you are fooling the software to think its actuating a servo instead of the speed controller.
In regards to the sticks think of it more like a RC car setup where the throttle curve starts at mid point of the way since the negative 50% are there for braking and reverse. Did you set the direction setting (forward/reverse) in your ESC accordingly?
Since its a drone ESC i think you might need to change the setup differently.

EDIT:
found the instructions on the AliExpress page
I think you need to follow this and also enable the brake:

Summary

normal boot process

Pull the throttle stick to the lowest position → power on the remote control → power on the ESC → detect the minimum throttle signal, long “beep----” sound → test the battery power

Press and release several short “beep-” sounds in succession, indicating the number of lithium battery cells currently in use → “♪ 1 2 3” starting sound → pull up the accelerator to start.

  1. Throttle travel setting (when the ESC is equipped with a new remote control, it is recommended to set the throttle travel)

Power on the remote control → pull the throttle stick to the highest position → power on the ESC → detect the maximum throttle signal, “beep-beep-” beeps twice, indicating that the throttle is at the maximum

The high point has been confirmed and saved automatically → Pull the throttle stick to the lowest position within 2 seconds → When the lowest throttle signal is detected, a long “beep----” sound → Detect

Battery voltage, several short “beep-” sounds continuously, indicating the number of lithium battery cells currently in use → “♪ 1 2 3” starting sound → pull up the accelerator to start.

After the maximum throttle is confirmed, if the throttle stick remains at the highest position for more than 2 seconds, it will enter the remote control programming mode.

If the throttle stick is not in the lowest position nor in the highest position after the remote control and ESC is powered on, it will emit “beep-, beep-,…” continuous beeping.

hint.

Configurable parameters

  1. Brake selection: 2 options: off, on, default off.

  2. Electronic timing: 5 options: Low: 0 degrees, Mid-low: 8 degrees, Mid: 15 degrees, Mid-high: 23 degrees, High: 30 degrees. It is generally set to mid-advance angle. suitable for low angle

Motors with large inductance and low speed; high advance angle is suitable for external rotor motors with small inductance and high KV value. For some high KV motors, if using

During the process, when the motor is running at high speed, jitter occurs, and it needs to be changed to a high advance angle.

  1. Actuation force: 13 options: 0.031, 0.047, 0.063, 0.094, 0.125, 0.188, 0.25, 0.38, 0.50, 0.75, 1.00, 1.25, 1.50.

The default parameter is 0.75. Select the corresponding starting force according to the applied motor load. If the value is too small, the motor may not start smoothly.

The machine may start too hard.

  1. Curve Settings: 4 options: None, Low, Medium, High. Default is None.

  2. Frequency Control: 2 options: 8KHz, 22KHz. Default is 8K. This item is the drive frequency of the motor.

  3. Low voltage protection settings: 4 options: none, 2.8V/cell, 3.0V/cell, 3.2V/cell. The default option is 3.0V/cell. The number of battery cells is automatically detected by the ESC, such as

When the battery is a 3-cell lithium battery, if the voltage is lower than 9V, the ESC will be processed according to the selected low-voltage cut-off method.

  1. Low-voltage cut-off method: 2 options: gradually reduce the power, cut off the output immediately. The default is to gradually reduce power. When the battery voltage is lower than the low-voltage protection value, if you choose to gradually reduce the power, the ESC will gradually reduce the output until the power is reduced to 31% and keep running at this power; if you choose to cut off the output immediately, the ESC will directly cut off the output.

to stop the motor.

In the case of low-voltage protection, pull the throttle rocker to the minimum throttle and then pull the throttle up to restart the motor, but because it is still in a low-voltage state at this time, the output power

rate smaller or stop immediately.

  1. Direction setting: 3 options: forward, reverse, bidirectional. The default is forward (that is, the direction of the initial assembly).

reset

Power on the remote control → pull the remote control stick to the highest position → power on the ESC, wait for 2 seconds, and make two beeps of “beep-beep-”, the maximum throttle setting is completed → continue to maintain

Hold the remote control stick in the high state, wait for 2 seconds, and emit a melody sound of “♪ 123 ♪ 1 2 3”, indicating that it has entered the remote control programming mode → before entering the first programming item

Before, pull the throttle to the bottom, then pull it to the top → after hearing the save music, pull the throttle to the bottom, it can run normally

Note: This function is added later, and this function is not available at the beginning.

ESC self-protection function description

  1. Low-voltage protection: When the motor is working, when the battery voltage is lower than the set low-voltage threshold, you can choose to immediately turn off the motor or reduce the power, see the parameter setting section for details.

point.

  1. Throttle signal loss protection: the signal is lost, the power gradually drops to 0, and the motor stops. When the throttle signal is detected again, the motor restores the power corresponding to the throttle at this time.

run.

  1. Over-temperature protection: when the temperature of the power tube exceeds about 100°C, the power drops to 75%; when the temperature exceeds about 105°C, the power drops to 50%; when the temperature exceeds about 110°C, the power

The power is reduced to 25%; when the temperature exceeds about 115°C, the power is reduced to 6.25%. When the temperature is lowered, the power is restored.

Remote control programming

Step 1: Enter programming

Power on the remote control → pull the remote control stick to the highest position → power on the ESC, wait for 2 seconds, and make two beeps of “beep-beep-”, the maximum throttle setting is completed → continue to maintain

Hold the remote control stick in the high state, wait for 2 seconds, and the melody sound “♪ 123 ♪ 1 2 3” will sound, indicating that it has entered the remote control programming mode.

Step 2: Select the programming item

After entering the programming mode, keep the remote control stick pulled up to enter the item selection. There are 7 items in total, corresponding to 7 different prompt sounds, which can be selected cyclically in the following order.

After the beep of an option, pull the throttle stick to the bottom within 2 seconds to enter this option.

  1. “beep-” (1 short tone), brake selection

  2. “beep-beep-” (2 short tones), timing setting

  3. “beep- beep- beep-” (3 short notes), activation velocity

  4. “beep-beep-beep-beep-” (4 short tones), curve setting

  5. “beep-----” (1 long tone), controls the frequency

  6. “beep-----beep-” (1 long tone, 1 short tone), low voltage protection setting

  7. “beep----- beep- beep-” (1 long tone, 2 short tone), low voltage cut-off method

  8. “beep----- beep- beep- beep-” (1 long tones, 3 short tones), direction setting

Step 3: Select the item value

After selecting a certain item, keep the state of the remote control stick in the low state, and then enter the circular selection of the parameters of this item. Each beep (four short tones followed by one long tone,

So on and so forth). After a certain prompt tone, within 2 seconds, pull the remote control stick to the highest level, and a melody sound of “♪321 ♪3 2 1” will sound, indicating that the parameter is saved. Keep

If the state of the remote control stick remains unchanged, proceed to the next project according to the method at the beginning.

Step 4: Exit Programming

After saving a parameter, pull the remote control lever to the lowest position within 2 seconds and hold it until “beep---- beep- beep- beep- ♪ 1 2 3” is issued, at this time

Set the minimum throttle and exit the programming mode, and normal operation can be performed (the beep at this time indicates the loading parameters, beep-beep-beep- indicates the electric

The number of pool sections, ♪ 1 2 3 means ready).<

Thanks - I did sent the upper and lower throttle endpoints and all the other configs, brake i dont normally use in this situation but can try it. I am also hoping the designer replies how they configured their ESC.

1 Like

I dont think the confguration of the Transmitter is setting the full throttle travel, because its not setting min\max throttle NOR does it even let me get into programming mode.

I purchased the exact recommended ESC and motor as per the designer, so will have to check with them unless anyone else has ideas?

Hello, using drone or aircraft ESCs can often be frustrating. I’ve encountered similar issues before, and I remember spending an hour calibrating the midpoint. That’s why I opted for a different ESC for my model, which worked perfectly right away. I understand this isn’t the case for you. Could you send me a picture of the ESC you received?

I’m currently on a business trip, but I’ll dive into this further once I’m back on Sunday.

Have a look at the second half of the post in Where is documentation on building applications for Cyberbrick? - #23 by xrk where I took a look at CyberBrick core servo output pulse length.
In short, you get a ca. 0.5 to ca. 2.5ms pulse length output, whereas “normal” servo or PWM pulse controlled ESC control signal range typically is only between 1.0 to 2.0 ms. Thus, CyberBrick is using extended range, in order to drive “normal” 90° servos (with +/- 45°) up to 180° (+/- 90°).

The original CyberBrick Core MicroPython code driving the servo outputs is in: CyberBrick_Controller_Core/src/app_rc/bbl/servos.py at b5fc07d44d65143cfef1164ae6234099fcb11d62 · CyberBrick-Official/CyberBrick_Controller_Core · GitHub

If you want to change the CyberBrick to “normal” range, then use:

duty = (int)(angle * 51.2 / 180 + 51.2)

instead. This results for angle 0 (min CyberBrick value for set_angle()) then to 51.2/1024 * 20=1ms and for angle 180 (max value) to 102.4/1024 * 20=2 ms

Do note that you have only 51 control steps over the full channel range with this, so the control granularity might be noticieable.

(If you are wondering where the values 1024 and 20 in the equation above stem from, then 10-bit PWM timing is used (10bits - 1024 steps) and 20ms PWM period used by CyberBrick servo-driver code.)

IMHO easiest to change the code is to get Arduino MicroPython IDE and first copy the ./app/bbl/servos.py to your computer, then edit it with a text editor of your choice (e.g. NotePad++ has nice color coding for Python) and then copy it b

@xrk that’s an interesting finding and explains why I had to shorten the range for the rudder so much. However, having an extended range should not interfere with programming; instead, it should be the reason to program an ESC.

Looking at the pictures from AliExpress and me, you can see I received a different ESC. This seems to be the one I got a year ago: https://de.aliexpress.com/item/1005008910324487.html

I’m gonna get the other one too and try programming it. I’m sorry for the inconvenience and delay. It would be nice to have an ESC from MakerWorld.

I am happy to purchase your ESC as well, either way. Your link from a year ago is 18A? is it the Style A, B or C? (EDIT - i think the style is just the motor wire connector, 2mm, 4mm or bare wire)

https://de.aliexpress.com/item/1005008910324487.html

Here is the ESC I purchased, based on the link from your makerworld model page under list other parts @TheBavarianModelMake

List other parts

I am trying to learn as well, so as said it might be throttle range, or midpoint that needs adjusting and I am trying to tweak that as well - currently the values dont allow the ESC to so see max\min throttle etiher.

I am also assuming a few things @TheBavarianModelMake - so to confirm what is your throttle design meant to do?
a) Throttle middle \ default position - no movement \ motor off
b) Throttle UP - is forward motion
c) Throttle DOWN below middle - meant to do nothing?

  • or are we reversing it , to drive backward… and if so, then we need to program the ESC for Bi directional as well?

Thanks- dont expect an urgent response \ over the weekened etc, look after your work \ family etc.

Havent been able to solve this yet, still trying a few different coonfigs, will update as I progress and if i get a confirmed solution.

Cyberbrick uses a joystick as a throttle, while most larger remotes, designed for planes and drones, have no self-centering throttle stick because you can’t reverse a flight direction.

So, your assumption is right:

  • Throttle up → thrust
  • Throttle middle → Motor off
  • Throttle down → It’s up to you, but I suggest it does nothing because you can’t steer very well

If this isn’t the case, most likely you need to adjust the midpoint. I’m still trying to figure out how to do this with your esc. The order will arrive in a few days.
And I try the ones I have, too, because I guess I just got lucky :wink:

1 Like

After getting the ESC, I started troubleshooting but couldn’t adjust the midpoint with a remote and had to flash it instead. I used BLHeliSuite and an Arduino, but it wouldn’t detect the ESC. Some sources suggested soldering to the ESC’s circuit board, but I’d like to avoid that. It might be easier to just buy another ESC, and I hope the next one works. I might order a few to be sure.

You write “BLHeliSuite” here - is your ESC running BLHeli_S, BlueJay or BLHeli32 firmware? And what firmware version? As not all of these options support PPM control! Can you show a picture of the ESC you bought incl. URL to the manufacturer/product page?

I also bought your (hopefily) different ESC- its on its way.

I bought the 20A one linked on the makerworld page and in the thread above.
Listed as
ZMR BLHeliSeries 12A 20A 30A 40A 50A 60A 80A ESC Brushless Multi Rotor Four Axis Electric Control for RC Drone

The modern way to change parameters of BLHeli_S ESCs would be via: https://esc-configurator.com/
But I believe, you need to hook it up to a BetaFlight or iNAV flashed flight controller in order for ESC Configurator to do it’s magic via BLHeliPassthrough protocol.

The old software was: GitHub - 4712/BLHeliSuite and this supported also some Arduinos as interfaces (do note that the signal pin that you need to use differs from Arduino board type to board type).

Your older style RX you also linked from your original build 1 year has arrived at home, once I get there and wire it up will post results. I think it has 2mm bullet connects for the motors and my other was just bare wires so need to get some 2mm bullets or just cut them off… will advise.

OK - but I bought the one linked on your Makerworld model page - the 20 amp one as suggested, it seems thats NOT the one you used for the project and thus you had no issues, but the one I bought from your list was a hot mess.

The 2nd ESC I purchased wasnt one linked on the makerworld model page, but here in the forums

and after soldering it all up and testing , it works out of the box a per design. So - anyone else - use this other 18amp listed above as after nearly 4 weeks of this original listed ESC I cannot figure it out and this other 18amp one works just fine.

@TheBavarianModelMake Can I make the suggestion that your original model\make instructions be updated with the correct \ original ESC you listed here, and a word of warning essentially thatr other “BLHeli” ESCs may not work or requrire after hte fact programming of some extent and provide no instructions for figuring that out.

TLDR - Its working with that different ESC you linked, not the one you put on the makerworld model page.
[EDIT:- I see you updated the makerworld page, I will update the posts of a few people that may also have purechased the wrong ESC etc and \ are waiting on their parts from Aliexpress and may have the wrong ESC.

If the BLHeli_S compatible ESC is factory flashed with (newer and otherwise for FPV quads targeted more capable) Bluejay firmware, then PWM input control won’t work and the user has to go through loops and hoops to flash the old original BLHeli_S firmware to it, that does support PWM input.

I will try and backwards reverse the original BL Heli ESC and figure out what it has on it… etc.

The BLHeliSuite (not to be confused with BLHeliSuite32 that is for 32-bit microcontroller ESCs and not 8-bit BLHeli_S ESCs) can be downloaded from: My Files

The GUI has some help and also firmware with it to flash, e.g. an Arduino Uno or Mega with appropriate interface firmware to be then accessible by BLHeliSuite from computer. Thus

Computer with BLHeliSuite <-- USB --> Arduino Board <-- single-data-wire + GND --> BLHeli_S ESC

The BLHeli_S ESC needs to be also powered during the interfacing/parametring.

Here is a tutorial how to work with BLHeliSuite: How to Connect, Flash and Configure BLHeli_S ESCs - Oscar Liang