Posted 11 Hours Ago Job ID: 2100396 13 quotes received

ESP32/Arduino firmware

Fixed PriceUnder $250
Quotes (13)  ·  Premium Quotes (0)  ·  Invited (0)  ·  Hired (1)

  Send before: February 20, 2025

Send a Quote

I have a turntable which I want to upgrade with electronics so it can control the camera of a smartphone. 


What I want to achieve: 

Turntable who runs in 3 modes, manual, video and photo mode. 


ESP32 has BLE with THINMOTION as name. Phone can connect to ESP32/BLE. ESP has "blekeyboard.h" library to send "volume up signal" to trigger camera.


Turntable is equiped with a sensor which detects pulses of the gear. This sensor is connected to gpio35.


I have a selectorswitch with 3 positions, 0-1-2. When 1 (video mode) is selected, GND is connected to GPIO 32. When 2 (photo mode) is selected GND is connected to GPIO33. When switch is in 0 position (manual mode), there is no connection between GND and pin 32/33. 


In manual mode the esp doesnt have to do anything, only keep ble on/connected. 


In video mode the esp must sent (BleKeyboard library) volume up signal (to trigger camera) after 10 pulses received. After a full rotation (1255 pulses (after the first 10)) the esp must trigger the camera again (volume up) to stop video. Also the stop relais on pin 27 (output) must be high for 1 second to stop the turntable. 


Pulse counter must be reset when rotation status changes (pin 34 starts or stops). Be aware! Pulsecounter must only reset on "status change" and not continually while high or low. 


In photo mode the ESP must trigger (volume up signal by BLE) a certain amount of times during a rotation. This amount is preset, 4, 6, 8, 10, 12, 16 and 24 times per rotation. This amount is controlled by a pushbutton GPIO26. Always starts at 4 and when pressing the button, the amount must increase from 4 to 6, 6 to 8, etc. 16 to 24, 24 to 4... When the rotating detection (relais on GPIO34) is on, the first picture must be taken (volume up signal). The rest of the pictures must be taken by deviding the gear by the amount of photo's selected. Like 1255/8 pictures=156,9 = 157 pulses between pictures. After the amount of pictures is taken the turntable should stop by putting GIO27 output high for 1 second.   


Turntable itself is controlled by remote control. I have a remote sender/receiver. This is the way the turntable normally operates, based on putting 12v on the motor or switching off. 


When remote is pressed, the receiver turns on and the DC motor starts running and simultanious a relais triggers input (GPIO34) of the esp32. As long as the motor runs this input will be low (pulled down to gnd).


All inputs have internal pullup and some of them extra external pullup.


To show the user the status of the ESP32 I want to show status on a 1,3 inch oled screen via i2c. 
Show which mode the controller is, Manual, Video or Photo mode. In case of photo mode show the amount pictures per rotation is selected. If there is BLE connection, show connected. If not, please show "Please connect via Bluetooth"


I have a sketch that works but fails to trigger the camera and some other functions. 

... Show more
Rob T Netherlands