Raspberry Pi 4 I2C bus was working, but fails after reboot - raspberry-pi

I have an SSD1306 OLED display and RPi4. I used the tutorial from https://maker.pro/raspberry-pi/projects/raspberry-pi-monitoring-system-via-oled-display-module which (after a small mod) was working up until I updated /etc/rc.local and did a reboot.
Since then, I get nothing.
sudo i2cdetect -y 1 now gives me:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
I had created an image of the SD Card before setting up the OLED, and restoring the image and trying again I still can't detect the OLED.
I'd appreciate any tips or thoughts on resolving this.

Solution is unknown. I left the Pi run for a while, then tried again and it just worked.

Related

Coral Dev Board Mini i2C connect to Adafruit Motor Shield V2

Anyone have any success connecting the Coral Dev Board Mini to Adafruit's Motor Shield V2 (AMS) with I2C?
My first solution was to use the only 3 PWM on the Dev Mini to control the speed and direction of a motor, but i need two motors.
So decided to go the I2C route coupled with Adafruit's Motor Shield V2.
I've connected the following pins between the board and shield
Mini 5V -> AMS Vin
Mini GND -> AMS GND
Mini SDA (pin 3) -> AMS SDA pin
Mini SCL (pin 5) -> AMS SCL pin
On the mini the SDA/SCL pins 3 & 5 are associated with device path /dev/i2c-3
sudo i2cdetect -y 3
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
and I should be seeing 0x60.
The default Mini pin states are
HIGH (4.7K pull-up)
Any ideas?
Or Any thoughts on another solution to control the speed and direction of two motors?
I don't know the Adadfruit motor driver, but if you connect +5V to it's Vin it might well pull up the I2C lines to this voltage which might not be compatible with the 3.3V the mini dev uses. Have you checked this?
I have tried something similar, but with the SparkFun Auto pHAT (which does 3.3V <-> 5V conversion on the I2C bus). I could not get I2C working between the Auto pHat and the dev board mini. Maybe something in the I2C implementation of the mini is not working out of the box. I could control the Auto pHat with a (3.3V) ESP32 without problems.
I have also developed my own motor driver which is controlled by I2C and the prototype works well with the ESP32, I have not yet tried it with the the dev board mini. I'll give it a try and let you know.

getting time out error while connecting postgres in sails application in development mode?

I am trying to develop a simple HTTP API using sails framework. I have created models, controllers, helpers and routes in order to complete the workflow of the API but when I am lifting sails app in development mode , I am getting a timeout error for setting migrate=alter. After debugging on my own I got to the conclusion that my sails app is not connecting with the postgres.
I have installed all the related dependencies (ex. sails-postgresql, pg etc..), I am setting a correct URL in config.model file. I don't know what I am missing with this..
Any suggestions???
versions: sails-1.2.4, postgresql-12.4
edit: This is the error I am getting.
nirajrajput#Nirajs-MacBook-Pro demosails % node app.js
(node:29522) Warning: Accessing non-existent property 'padLevels' of
module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was
created)
info: ·• Auto-migrating... (alter)
info: Hold tight, this could take a moment.
error: Failed to lift app: Error: Sails is taking too long to load.
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- --
Troubleshooting tips:
-• Were you still reading/responding to an interactive prompt?
(Whoops, sorry! Please lift again and try to respond a bit more
quickly.)
-• Do you have a lot of stuff in `assets/`? Grunt might still be
running.
(Try increasing the hook timeout. Currently it is 40000.
e.g. `sails lift --hookTimeout=80000`)
-• Is `blueprints` a custom or 3rd party hook?
(*If* `initialize()` is using a callback, make sure it's being
called.)
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- --
at Timeout.tooLong [as _onTimeout] (/Users/nirajrajput/demosails/node_modules/sails/lib/app/private/loadHooks.js:191:21)
at listOnTimeout (internal/timers.js:551:17)
at processTimers (internal/timers.js:494:7)

How to see where in the queue I am for a job on a cluster?

I am using a cluster computer to compute a "lmem" job. I submitted my job a day ago and while normally the job immediately begins running and I can monitor how long it has been running with qstat, this job remains in the queue.
I used qstat -q to see that
`Queue Memory CPU Time Walltime Node Run Que Lm State
---------------- ------ -------- -------- ---- --- --- -- -----
lmem -- -- -- -- 36 235 -- E R
batch -- -- -- -- 8 0 -- E R
express 4gb -- 06:00:00 -- 17 0 -- E R
test -- -- -- -- 0 0 -- D S
production 16gb -- -- -- 66 157 -- E R
route -- -- -- -- 0 0 -- E R`
Someone must have put in A LOT of lmem jobs. I was wondering if there was a way to see where on that list of 235 my job is in line?
When using a scheduler like Moab or Maui, you can run a commands such as checkjob -v and mdiag -p (or have an admin do it for you) to see if the job has an advance/priority/job reservation, and how many jobs it has in front of it. The default ordering of showq will place jobs with a job reservation at or near the top of the Eligible/Idle list. If you're only using pbs_sched, then the order shown in a plain qstat is the order in which it will run, although that may not make it clear how soon it can run.

how to record an ir signal from an AC remote using LIRC in raspberry pi?

i had already used the LIRC of the raspberry pi to record and use the IR signals of a samsung TV remote. the recording process was fine. i used this site for reference.But now i am unable to record the IR signals from a bluestar AC in the same method. After 1-3 dots (not always the same number), irrecord exits with the following error message:
irrecord: could not find gap.
irrecord: gap not found, can't continue
then i tried recording the AC remote signals using mode2 and routing it to a text file and manually modified the lircd.conf file to include the raw code as shown in the link
How to use irrecord with 2ms timing instead of the default 5ms?
but then i get the error that
irsend: command failed: SEND_ONCE /etc/lirc/lircd.conf KEY_POWER
irsend: unknown remote : "/etc/lirc/lircd.conf"
Possibly lircd doesn't accept all characters (e.g. slash) for the remote name. Try changing the:
name /etc/lirc/lircd.conf
in the .conf file to a different name (e.g. MY_REMOTE), then invoke the irsend like:
irsend SEND_ONCE MY_REMOTE KEY_POWER
The air conditioning controls send more bits than the television ones for example. You have to configure the lirc.conf header as:
begin remote
name IRAIR1
bits 48 #Configuración para 48 bits
flags SPACE_ENC
eps 30
aeps 100
header 3388 1678
one 430 1257
zero 430 412
ptrail 428
gap 108399
begin raw_codes
name KEY_POWER
3478 1676 500 1218 501 388
472 ..................................
end raw_codes
end remote
I think exactly what 48 bits are sending. This guy explains it: http://absurdlycertain.blogspot.com.es/2013/03/lirc-raspi-remote-control-configuration.html
Do not forget to restart the device, with me it does not work if I do not.
Sorry for my English

Solaris svcs command shows wrong status

I have freshly installed an application on solaris 5.10 . When checked through ps -ef | grep hyperic | grep agent, process are up and running . When checked the status through svcs hyperic-agent command, the output shows that the agent is in maintenance mode . Application is working fine and I dont have any issues with the application . Please help
There are several reasons that lead to that behavior:
Starter (start/exec property of service) returned status that is different from SMF_EXIT_OK (zero). Than you may check logs:
# svcs -x ssh
...
See: /var/svc/log/network-ssh:default.log
If you check logs, you may see following messages that means, starter script failed or incorrectly written:
[ Aug 11 18:40:30 Method "start" exited with status 96 ]
Another reason for such behavior is that service faults during while its working (i.e. one of processes coredumps or receives kill signal or all processes exits) as described here: https://blogs.oracle.com/lianep/entry/smf_5_fault_retry_models
The actual system that provides SMF facilities for monitoring that is System Contracts. You may determine contract ID of online service with svcs -v (field CTID):
# svcs -vp svc:/network/smtp:sendmail
STATE NSTATE STIME CTID FMRI
online - Apr_14 68 svc:/network/smtp:sendmail
Apr_14 1679 sendmail
Apr_14 1681 sendmail
Than watch events with ctwatch:
# ctwatch 68
CTID EVID CRIT ACK CTTYPE SUMMARY
68 28 crit no process contract empty
Than there are two options to handle that:
There is a real problem with service so it eventually faults. Than debug the application.
It is normal behavior of service, so you should edit and re-import your service manifest, to make SMF less paranoid. I.e. configure ignore_error and duration properties.