Display-O-Tron 3000

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.

more info

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:

spi-bcm7208

And that in /etc/modprobe.d/raspi-blacklist.conf it’s commented out like so:

#blacklist spi-bcm2708

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:

ls /dev/spidev*

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!

1 Like

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:

sudo rpi-update

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 :-)

Finally got it working!

I can’t wait to get hacking.

1 Like

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+

1 Like

That’s great, thanks for the fast response :D

Hi

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?

Thanks

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.