Remote design based on ESP32

HI Guys,

I’m impressed by the work this community did on creating remotes based on arduino/avr. I like them, but I would like a simpler solution using ESP32. Specifically you can get dev board which basically has everything need but accelerator control.

This is the board https://www.ebay.co.uk/itm/ESP32-Development-Board-WiFi-Bluetooth-CP2102-18650-Battery-0-96-inch-OLED/162659059377?hash=item25df3c46b1:g:06QAAOSwn3Vasxcg

For communication we can do UDP over wifi OR ESP supports interesting p2p communication using ESPNow protocol.

I can do coding/3d design/electronics and looking for collaborators on this project.

This could be an easy to assemble and a cheap remote solution.

3 Likes

Sounds like a neat idea

image

How strong is the connection as the current problem with most remotes is that they’re either butt ugly , or are susceptible to interference.

A plain Firefly with only LED’s and a multi-button would be nice

There is a ESP8266 version, is that better? I think someone made a ESP8266 remote before

esp8266 is the older version. ESP32 is the new version of this controller and this dev board has battery/charger/wireless/oled/few buttons. Perhaps hall sensor and case is all whats needed.

I agree stability needs to be tested. My feeling is that using wifi/tcp is a bad choice but UDP should work. The ESPNow is probably even better. I managed to find some reports from RC world.

More testing is needed, hence looking for like-minded people to do it together.

1 Like

This is funny, but ESP32 even includes a hall sensor!!!

1 Like

Nice sorry I didn’t know that ESP32 was the new version :slight_smile:

The dimensions of the pcb, are they a bit too tall?

edit doesnt matter

I’m in :slight_smile:

I have built my remote using ESP32. Tried ESP-Now, Wifi, BLE but they were all a bit slow (BLE connection was a pain, but worked). Ended up using an ESP32 with nRF24L01. More wires but a lot more reliable.

ESP32 has two cores which I HIGHLY recommend getting you head around. Google “ESP32 FreeRTOS” maybe. I might see if I can find you a link somewhere.

RTOS/dual cores means that you can have one core (or thread?) reading buttons etc (timing critical) and the other core talking to the board… completely independantly.

I had real issues with how much stuff the ESP32 was having to do, and I was reading a digital encoder at the same time.

You are using MCU resources incorrectly… 8-bit AVR can do all that stuff without even sweating.

P.S. How are you splitting load between cores?

One core had interrupt handlers on two pins reading a digital encoder. The other core was sending data through the nRF24L01.

I don’t think I was doing anything incorrectly. It was about timing-critical tasks. If the MCU was busy updating a display/sending data then it was missing encoder pulses.

1 Like

I’ll admit that for “trigger” style remotes that dual-core (FreeRTOS) might be overkill. Still think it’s elegant though.

1 Like

Just to bring in the context, 8051 handles W16 engine, with 4 precision rotary encoders, 16 injectors (PWM based) over 20 sensors communicate through CAN and final nail everything was fit inside 64K rom, 2 external interrupts, and just 2 timers :smiley:

Check your code for blocks, something is blocking interrupts I don’t remember if ESP32 has jtag or etc debugger to see what your code is doing.

P.S. don’t use those Arduino style SDK those SDK are just for simple simple task

1 Like

I understand just 5% of what you guys say…but sounds very interesting…continue reading :stuck_out_tongue_winking_eye:

3 Likes

Sure. You might be right. I’m a c# developer, not a c++ dev. Dual cores works for me… I like the idea of abstracting tasks away from each other… especially in a hardware sense.

p.s. you’re probably right re: Arduino SDK. I fairly short of time so Arduino is just going to have to work for now.

2 Likes

It’s easy to develop something on ready made platform :slight_smile:

Also I think my computer in my Mark48 project is overkill compared to your remote :smiley:

1 Like

Also lets not forget Apolo 11 Main CPU :joy:

Agree it’s strange you had performance issues.

What did you use encoder for? Did you try to use internal hall sensor for trigger? It’s just adc conversion.

I want to play with ESP now. Someone on arduino forum reported less than ms for packet send/receive cycle …

I was going to write a post about the encoder idea but I am using the encoder as the throttle, pulses increment/decrement a counter and the remote talks to the board as a ‘nunchuk’ remote … essentially a position-less throttle I guess.

Might not be the best solution, a few design/safety decisions had to be figured out, but cruising/throttle response is super smooth.