Rocket Controller

Hi all,

just seen some cool devices from Rocket Controller, as DIN Rail mount.
Looks nice and has plenty of option (AC / DC IN / 8xGPIO)

What do you think?

Especially the expansion board on I2C is very interesting for a decent amount.

IMHO, nice to use whenever I need to have AC IN as source.

BTW: Does somebody know a DIN Rail mounted GPIO expansion I2C Board ?

I bought a relay board from Rocketcontroller with an RS485 interface. There is a manufacturing problem with the connector for the RS485 board, I have sent several emails to Rocketcontroller requesting assistance and have had no replies.

On the basis of this I would recommend not dealing with the company.

Okay… Yeah I connected the Tuya against it, unfortunately the device keeps restarting continously.
Indeed I wanted to connect RX2 and TX2 on PIN16/17 and the Jack for RS was not working.
Maybe I should consider to understand what I read.

Between the internal UART and RS should an RS Module plugged :frowning:
Okay, I want RX/TX so I am bridging these now.

Nontheless I did a lot of work to measure the board.

Here some useful links:

https://templates.blakadder.com/assets/ASTRA_controller.pdf

https://templates.blakadder.com/rocket_R4A4.html

And my work (BTW: The PINs for the RJ12 are wrong. 1 is 6 and 2 is 5 and so on)

I found this thread while looking up an ESPHome config for the ESP32R4 board, which I bought without much research first (it was very cheap for the money!).

Just to mention that the ESP32R4 I bought this month (Nov '23) works well. It came pre-programmed with Tasmota which I was able to reflash to ESPHome over the web interface. BUT if using a serial interface board you MUST cut 4x PCB tracks and bridge 3x pads the other side of the cut. They are very small, but I was able to bridge them by overloading the soldering iron tip and dragging it across the pads. The instructions are on their website, eg this. I then connected it to my RS485 device (a flipdot sign) and it worked fine.

Their website has some example configurations:

The only thing to note is that their example is wrong with regards to the status LED, you need to configure it like this:

status_led:
  pin:
    number: GPIO2

For the RS485 interface, this works:

uart:
  id: your_id
  tx_pin: GPIO17
  rx_pin: GPIO16

So in summary, although I haven’t thoroughly tested it yet, it seems a good solution for having an ESP32, relays and serial/I2C etc all on one board.

1 Like

hi!
anyone tried USB to TTL on this device? I have a ESP32R4 – 4 Relays controller V4.
It just won’t upload via the USB.
I tried pressing the boot button, holding it, reseting the device while holding boot button, etc… and nothing works…
Any ideas?
Thanks!

Simply cycle power the device with the PROG button pressed. Resetting it with that button pressed does not work.

1 Like

I bought a couple of these ESP32R4 boards… To be clear, I ordered the AC PSRam w/external antenna hoping for longer wifi range than the cheaper on board antenna esp32 wroom x4 relays I had got before.

Of course, I didn’t find this thread until after I have had problems…

I didn’t have issue flashing code to one in ESPhome using a cp2102 usb to ttl module and the example code from rocketcontroller.com.

But, even after correcting the led code and adding the uart code as mentioned above, the one unit I have flashed has a constant high frequency buzz. Any thoughts?

Also, the wifi range is even less than the cheaper esp32 x4 relays… Any others have that experience?

I’m wondering if these issues are related to morecoding errors or are “features” of this board?

Never heard of this brand but, just skimming through past user comments, they include example code being wrong, gpio pinout being wrong, hardware failures, you’re high frequency buzzing, and the biggest red flag of all is someone trying over and over to contact them for help/support and they’ve gotten no replies back. All of these complaints and the suspiciously low prices on these, id be very suspicious of this company and personally I would take a hard pass and avoid getting ripped off.

To answer your question, high frequency buzzing is typically hardware related but, its possible youve got something else going on too.

1 Like

Does seem like the company started with promise, much of which ended unfulfilled.

I actually bought mine from AliExpress; likely old stock from the failing company…

I’m going to try flashing the 2nd unit with the same code and compare.

Pretty sure they stull produce.
Tje expansion board was not available but now it is.
Pretty okay.

Never had hardware issues, it works as designed.
We should all be clear, it is still diy

1 Like

Hi all,

Today I flashed a newly received Astra Controller with ESPHome.
Unfortunately this must be done by Serial flashing now as Tasmota 13 does not support OTA Flashing of ESPHome Images due to the safeboot implementation of Tasmota since V12.

If you plan to do so:
Serial Flash Controller
1.) Connect RX to TX
2.) Connect TX to RX
3.) Connect GND to GND
4.) During Boot connect GPIO0 to GND (enter Flash Mode)
5.) Flash ESPHome Bin (Legacy Mode created) by ESP Flasher

Additionally I installed the Modbus Module of Rocket Controller (RS485)
To get that working:
1.) All Dips must be in state “OFF” (close to the numbers)
2.) The Pins from left to right on the RJ12:

  • PIN1: None
  • PIN2: CS (not used)
  • PIN3: A+
  • PIN4: B+
  • PIN5: GND
  • PIN6: None

I update my picture from before slighly.

Additionally, here the proof it works:

Finally here my config:


esp32:
  board: esp-wrover-kit
  #board: esp32dev
  framework:
    type: arduino
   #type: esp-idf



# https://esphome.io/components/esphome.html#adjusting-flash-writes
preferences:
  #setting interval to 5 minutes since this defines writing to flash
  #Created a specific save script that is executed for things that need
  #to save more quickly.
  flash_write_interval: 5min

esphome:
  name: "${device_name}"

  project:
    name: "autox86.poolparty"
    version: "0.0.2"

 #Enable logging
debug:
  update_interval: 5s

#Logger must be at least debug (default)
logger:
  level: debug
  baud_rate: 0
  #enable for serial debugging
  #baud_rate: 115200

#Enable Home Assistant API
api:
  password: !secret api_pass2
  #no reboot in case HA is down - can require full reboot when HA is back
  reboot_timeout: 0s
ota:
  password: !secret ota_pass

wifi:
  #https://esphome.io/components/wifi.html#power-save-mode
  power_save_mode: none
  #No reboot if Wifi is missing - can require full reboot when wifi is back
  reboot_timeout: 0s
  domain: "${domain}"
  networks:
    - ssid: "anything"
    - password: "anything"
    - ssid: "anything"
    - password: "anything"
    - ssid: "anything"
    - password: "anything"

#captive_portal:

#Enable Web server
web_server:
  port: 80
  #Load JScript locally, so no internet required
  local: true

#Sync time with SNTP
time:
  - platform: sntp
    id: sntp_time
    timezone: Europe/Berlin
    servers:
    - pool.ntp.org

uart:
  #RX / TX on Serial1 
  - id: uart_0
    tx_pin: ${txd0}
    rx_pin: ${rxd0}
    baud_rate: 9600
    stop_bits: 1
    parity: NONE
  
 
  #Modbus for Rocket Controller 
  - id: modbus_uart
    tx_pin: ${txd1}
    rx_pin: ${rxd1}
    baud_rate: 9600
    stop_bits: 1
    parity: NONE

modbus:
  uart_id: modbus_uart
  id: rocket_modbus

modbus_controller:
- id: modbus_frequency_inverter
  modbus_id: rocket_modbus
  address: 0x01
  #setup_priority: -10
  command_throttle: 50ms
  update_interval: 5s


sensor:
  - platform: wifi_signal
    name: "WiFi Signal ${fiendly_name}"
    update_interval: 300s
    
  - platform: modbus_controller
    modbus_controller_id: modbus_frequency_inverter 
    id: target_frequency
    name: "Zielfrequenz in %"
    #Communication setup value(-10000 to 10000)( Decimal)
    register_type: holding
    address: 0x1000
    value_type: U_WORD
  
  - platform: modbus_controller
    modbus_controller_id: modbus_frequency_inverter 
    name: "Derzeitige Frequenz"
    register_type: holding
    address: 0x1001
    value_type: U_WORD

  - platform: modbus_controller
    modbus_controller_id: modbus_frequency_inverter 
    name: "Spannung des Bus"
    register_type: holding
    address: 0x1002
    value_type: U_WORD

  - platform: modbus_controller
    modbus_controller_id: modbus_frequency_inverter 
    name: "Ausgangsspannung"
    register_type: holding
    address: 0x1003
    value_type: U_WORD

  - platform: modbus_controller
    modbus_controller_id: modbus_frequency_inverter 
    name: "Ausgangsleistung"
    register_type: holding
    address: 0x1005
    value_type: U_WORD

  - platform: modbus_controller
    modbus_controller_id: modbus_frequency_inverter 
    name: "Ausgangsdrehmoment"
    register_type: holding
    address: 0x1006
    value_type: U_WORD

  - platform: modbus_controller
    modbus_controller_id: modbus_frequency_inverter 
    name: "Derzeitige Geschwindigkeit"
    register_type: holding
    address: 0x1007
    value_type: U_WORD


switch:
  #Switch to restart the device
  - platform: restart
    name: "${friendly_name} Restart"
    id: restart_button
    entity_category: diagnostic
  
  #Relay 1 == Tuya W2839 Messung - - Internal = Not showing in HA
  - platform: gpio
    name: Relay1
    id: relay_tuya
    internal: True
    pin: ${relay1}
    restore_mode: "ALWAYS_OFF"
    
  #Relay 2 == PH Dosieranlage - Internal = Not showing in HA
  - platform: gpio
    name: Relay2
    id: relay_ph
    internal: True
    pin: ${relay2}
    restore_mode: "ALWAYS_OFF"
  
  #Relay 3 == Sandfilteranalage - Internal = Not showing in HA
  - platform: gpio
    name: Relay3
    id: relay_sfa
    internal: True
    pin: ${relay3}
    restore_mode: "ALWAYS_OFF"
  
  #Relay 4 == WP (Heat Pump) - Internal = Not showing in HA
  - platform: gpio
    name: Relay1
    id: relay_4
    internal: True
    pin: ${relay4}
    restore_mode: "ALWAYS_OFF"

Concluded:
I have in total 3 of these devices installed for different purposes and the only “challenge” was mainly that the RJ12 Port (if you want to use it for UART) must be bridged. If you remain with RS485 or SPI it works as it should.

Next test will be a RF433 Receiver and Transmitter.

Worth to mention:
@gary_lankford: The new board has been re-worked, the Chip is not visible anymore and also the traces have been re-worked against the “older” device.

1 Like

Does anyone have pinouts for the two (RS SPI/I2C) RJ11 jacks found on the Rocket Controller ESP32R4?

I have vanilla Tasmota flashed onto it after soft bricking whatever version they pre-load that had their “ASTRA Dashboard” stuff on top of Tasmota by trying to load ESPhome onto it.

So I’m sticking to Tasmota and using MQTT with ESPhome to control it and doing things like relay latching via Tasmota command line vs. YAML in ESPHome builder.

I’ve got relay #1 and 2 setup to momentary toggle for garage door buttons, the RF433 working to toggle #2 relay but would now like to add a BME680.

Looks easy enough if using some pin headers they have on the side of the board but it looks really great if I could use some old RJ11 cable I have to make that sensor more remotely mounted but need the pinnouts.

Hi,

ESPHome must be flashed serial please!
The newer tasmota app has a different partition layout which is not compatible with ESPHome, therefor the first re-flash must be done Serial

Additonally, does that help?

1 Like

Yes that was helpful.

I did flash over serial (working connection as that is how I recovered with regular tasmota). I tried both legacy and the new compiling version as well.

Maybe its an issue with my YAML, I don’t know.

It looks like I could use a 6 conductor RJ12 cable to wire up a BME680 to the SPI connector to use SPI (instead of i2c) to remotely mount the BME680 a few feet away (will ensure to keep it under 3ft). Does this sound right?

I tried again being more experienced now and success!

I really like Tasmota but I hit a real hurdle when trying to understand how to make four different reed switches work as door sensors and then also report the status to Home Assistant so figured lets try ESPhome.

I have also jumpered 3.3v to pin #1 of the i2c connector, and looking at how to swap IO21 and 22 in ESPhome to make my BME680 then plug and play with the RJ12 connector.

EDIT

I have found besides the LED GPIO to be changed to IO 2 I also needed to change the buzzer IO to
output:

  • platform: ledc
    pin: GPIO4
    id: rtttl_out

rtttl:
output: rtttl_out

It no longer screems constantly and actually plays the music tune on bootup.

Ongoing issues:

I cannot get the remote receiver to work. With the example code the pin is high and upsets the log, I’ve since inverted it and changed the output to raw. I still do not get anything when I use the remote. This was working in Tasmota so I know the hardware and IO 27 is correct.

Also upon fixing the buzzer IO and LED IO, the buttons no longer control the relays. Their actuation shows up in the logs, but does nothing for the relays. I can still turn the relays on/off via Home Assistant.

Third thing, not sure if I should just ignore it but the BME680 logs a slow operation:
component:237]: Component bme680.sensor took a long time for an operation (58 ms).
[12:52:21][W][component:238]: Components should block for at most 30 ms.

Also the RF settings in the example are very generic I guess. You need to ensure a pullup resistor is enabled/true and then also set the pin to inverted

Else its a floating pin and you get tons of what seems like RF noise, tons of false positives of pronto protocol and none of the rc_switch coming in.

EDIT: Was a floating/flopping pin. Needs to have a pullup setting enabled and inverted.

Tempted to post my whole YAML file here (redacted sections) to supercede the example YAML from rocket controllers. The latter comes off like they looked at some tutorials and just winged it. There were pull-up settings needed and a number of other changes and pin corrections to get it all going. Any interest?