Troubleshooting HydraFerret
Enfield Cat's Blog: Arduino and other projects.
Introduction
While in many ways HydraFerret should present a simple interface, there are a number of complexities which may well cause issues.
This section aims to assist in diagnosing these issues and offering solutions and work arounds to such issues.
Terminal Access
- "Rubbish characters" appear on my terminal:
If you are connecting using a serial interface, make sure your connection speed is 115200 bits per second (baud),
8 bits per character,
no parity,
1 stop bit.
Legibile text should appear with this setting.
- "Rubbish characters" like "
[0;33;40m
" are muddled in sensible data on my terminal:
These are ANSI colur sequences. Disable ANSI colour sequences using "disable ansi
" - the annoying characters will go away.
You can test for ANSI support in your terminal by running either "ansi
" or "ansi test
".
- I connect with telnet, can enter my password and the system ignores my commands:
- If using a command line telnet: Use Ctrl-[ to get a "
telnet>
" prompt, enter "set crlf
" and press enter twice. The system should now recognise commands.
- If using a windowed program like putty or teraterm, set the new-line responses in the terminal set up to be Receive: Auto, or LF, and Transit: LF. The system should now recognise commands.
Errors on the HydraFerret Console
- There's a brownout detected message and the unit reboots:
This a a power supply issue. The esp32 module has too low a voltage to operate reliably.
This can be caused by a number of things.
- Check your wiring, there should be no short circuits, or sensors with power wired in reverse.
- Ensure the unit has a power supply that can deliver sufficient power even at peak demand, at least 250mA but more may be required depending on the sensors attached.
- The unit might not be coping with surge current, say for example when transmitting data. This can sometimes be fixed by adding a relatively large value electrolytic capacitor between 0V and the 3.3V pin. e.g 450uF
- There is a message "Missing xyx-sensor signal":
This is a timing warning about a particular sensor being delayed between readings.
- If it only sometimes occurs, or only occurs during an OTA update then it should be safe to ignore.
- You can reduce the frequency of readings on a particular device, e.g. to set the interval over which output conditions are assessed to one every 10 seconds, run the command "
interval output 10
" The interval can range between 1 and 300 seconds. 300 seconds is once every 5 minutes.
- Run the CPU at a higher frequency. Normally 80MHz is sufficient for HydraFerret, but this can be increased to 160 or 240 MHz, e.g. "
cpuspeed 160
" After selecting a new speed the HydraFerret module will need a restart, and the new speed becomes effective on reboot.
Connectivity with Sensors
- My i2c sensors are not being detected or are erratic:
- First check you have defined the i2c pins as you expect by running "
i2c
".
- Then check you have appropriate pull up resistors. Pull up resistors over 4k7 or missing pull up resistors may cause issues.
- While they will use more power, pull up resistors as low a 1k5 should work.
A lower pull up resistor may be a good solution when there are many sensors attached to a bus or a longer cable run is required.
- If the pull up resistors are OK, you may like to reduce the bus speed used. Use "
help i2c
" to see the options available for configuring the i2c bus.
- Also remember the i2c bus works best over short diatances. You may encounter errors if it is too long.
- Use the "cpuspeed" command to increase CPU speed, on a busy system this will make it more responsive to interrupts and sensor communications.
- Multiple sensors share an address
If possible use solder jumpers and address pins to ensure all sensors atttached to a HydraFerret device have unique addresses.
Otherwise use the second i2c bus to host the clashing addressed device, such that addresses are unique per i2c bus.
Diagnostic Commands
many commands can be run without parameters to show what their current settings are.
In addition to this there are a number of other commands to assist in diagnosing issues.
config
Lists basic configuration settings.
enable
Lists configuration options which are enabled/disabled/
history
Display recent history of commands. Cleared on reboot.
dump all
or dump <sensor-type>
Dumps memory block associated with various sensor types
identify [on|off|flash|fflash|sflash] [persist]
Set up node identify strobe, will persista after reboot if persist flag is used.
inventory
Dispalys and inventory of sensors.
list vars
Lists all memory variables.
onewire
Creates inventory of OneWire devices.
restart
Restarts the esp32 module, useful if config changes have been made or for improperly initialised devices.
repeat <count> <interval>
Repeats the previous command count times with an interval pause between repeats.
rpn <variable-name>
displays one memory variable.
scan
Scan i2c busses for device address responses.
Thank you for visiting camelthorn.cloud | | Home |