Boom! That’s right - it’s picked up the lighting controller, so nothing wrong there. Looks like it must be related to SPI (which drives the LCD itself) - I’ll collar Phil to take a look at the output you pasted above.
256MB Model B
Linux pi 3.12-1-rpi #1 Debian 3.12.9-1+rpi1 (2014-05-19) armv6l GNU/Linux
Looks like I failed at reading comprehension on this point. It is, indeed, an issue with SPI and I2C seems fine.
Can you confirm you have a line in /etc/module reading:
And that in /etc/modprobe.d/raspi-blacklist.conf it’s commented out like so:
Interestingly, there is an “spidev” module, but I don’t have this in my config files to apparently no ill effect.
Once you’ve checked these ( and rebooted if they need changing ), try:
This should show spidev0.0 and spidev0.1 if it’s set up correctly.
root@pi:~/dot3k# python hello.py Traceback (most recent call last): File "hello.py", line 3, in <module> import dot3k.lcd as lcd File "/usr/local/lib/python2.7/dist-packages/dot3k-1.5-py2.7.egg/dot3k/__init__.py", line 1, in <module> import lcd, backlight, joystick File "/usr/local/lib/python2.7/dist-packages/dot3k-1.5-py2.7.egg/dot3k/lcd.py", line 3, in <module> lcd = st7036.st7036(register_select_pin=25) File "/usr/local/lib/python2.7/dist-packages/st7036.py", line 20, in __init__ self.spi.open(0, spi_chip_select) IOError: [Errno 2] No such file or directory root@pi:~/dot3k# cat /etc/modules # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. # Parameters can be specified after the module name. snd-bcm2835 i2c-dev i2c-bcm2708 spi-bcm7208 root@pi:~/dot3k# cat /etc/modprobe.d/raspi-blacklist.conf #blacklist spi-bcm2708 root@pi:~/dot3k# ls /dev/spidev* ls: cannot access /dev/spidev*: No such file or directory
root@pi:~/dot3k# cat hello.py #!/usr/bin/env python import dot3k.lcd as lcd # Clear the LCD and display Hello World lcd.clear() lcd.write("Hello World")
lsmod Module Size Used by cpufreq_ondemand 7940 1 i2c_dev 4731 2 snd_bcm2835 16181 0 snd_pcm 63684 1 snd_bcm2835 snd_page_alloc 3604 1 snd_pcm snd_timer 15936 1 snd_pcm snd 44915 3 snd_bcm2835,snd_timer,snd_pcm soundcore 4827 1 snd ftdi_sio 28705 0 usbserial 19536 1 ftdi_sio spi_bcm2708 4479 0 i2c_bcm2708 4010 0
I couldn’t add a reply - but after rpi-update suggested below everything works fine! thanks for your help guys!
Curious! Everything looks in order.
Apparently there’s an old firmware bug in previous versions of Raspbian that may cause exactly this problem. Could you try the following:
If you don’t have rpi-update, you can install it with:
sudo apt-get update sudo apt-get install rpi-update
You might also want to do a general upgrade if your Raspbian is old…
sudo apt-get upgrade
And then reboot.
Glad to hear it! It’s always worth running a system update now and again to ensure you’re not too far behind (and more importantly have up to date security patches!).
Really pleased you have it up and running now :-)
I approve of this message :D
What got it up and running in the end? That SPI/I2C combo is a killer, hopefully my new setup script will make it easier.
@Gadgetoid Your setup script was very handy. Thanks!
Wi-Fi still won’t work, so I have to stroll to and from the garage (where the router is) to see whether or not code works :-)
what’s a suitable case that will enclose this for a Model B?
The new Pibow fits the DoT3K and is available for the B and B+, but requires a mod (drilled hole) to access the joystick.
The Coupé has an open top, so no drilling for the joystick, but I didn’t find it a great fit given the short height of the DoT3k’s GPIO header.
I am wondering if the dot3k compatible with the Raspberry Pi A+ because it isn’t in the description of the product but it has the same 40 pin header as the B+ so I don’t see why it wouldn’t work!
Has anybody tried it already?
It is compatible with the A+
That’s great, thanks for the fast response :D
I got a dot3k for xmas but I’ve encountered a few difficulties setting it up. I’ve been following this thread troubleshooting and have got the text and backlight working but I’m now stuck trying to get the joystick working.
I’m running a (pretty much) clean install of raspbian, updated to the latest version on a pi model B.
I get the following error when trying to run the joystick.py program from the dot3k github page:
pi@raspberrypi ~/dot3k $ sudo python joystick.py Traceback (most recent call last): File "joystick.py", line 13, in <module> @j.on(j.UP) File "/usr/local/lib/python2.7/dist-packages/dot3k/joystick.py", line 32, in register GPIO.remove_event_detect(button) AttributeError: 'module' object has no attribute 'remove_event_detect'
I can’t figure out whether it’s related but when I run ic2-detect I receive the following, which from what I can understand isn’t what I should be getting:
pi@raspberrypi ~/dot3k $ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- pi@raspberrypi ~/dot3k $ sudo i2cdetect -y 0 Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory
Has anyone got any idea where I’m going wrong?
Right, I had a sip of tea so my brain has a sufficient amount of caffeine to run on.
First off, your output from i2c-detect seems to be perfectly fine. The backlight uses a chip which doesn’t show up here- it’s write-only. So that’s nothing to worry about. If the backlight is working, then all the i2c stuff is fine!
As for the joystick, I’m a little confused. I’m prodding and poking at the code on my Pi to see if I can replicate your problem I suspect it may be due to some recent changes in RPi.GPIO.
Thanks for taking the time to look into this, it’s much appreciated.
I wasn’t sure what to expect from i2c, I’m only just starting to get to grips with it so I was under the impression i2cdetect should have detected something. Glad to hear that’s functioning correctly (backlight works fine).
Please let me know if there’s anything I can easily test to get more information.