Group Details Private


  • RE: TingBot display lights bleeding

    Hey Qake,

    Sorry - I have just seen this. The way the screen fits on the GPIOs there may be a small tolerance for light to escape from the backlit LCD. Mainly can only be seen in dark conditions. If you email through further shots of the module via I can see if there are any other issues present :)

    • Ken
    posted in Support
  • RE: Connecting Tingbot to wifi that needs login

    Hey Samrthi. You're right that it's not going to be possible to register the Tingbot with a browser login portal. Perhaps you could connect the Tingbot to your computer directly using Ethernet instead?

    posted in Support
  • RE: tide doesnt remove files from remote

    Great point A-999. I think it's a problem with Tide, a workaround is to reboot the Tide app. Still a bug, though, I've filed it here:

    posted in Coding help
  • RE: @every untill....

    Nice one A-999! Also, there's another way to make repeating functions that doesn't use the decorator - create_timer.

    Here's an example:

    import tingbot
    from tingbot import *
    import time
    def drawTime():
        currentDate = time.strftime("%d %B %Y")
        currentTime = time.strftime("%H:%M:%S")
        screen.text(currentTime, xy=(160,110), color="white", font_size=50)
        screen.text(currentDate, xy=(160, 180), color="white", font_size=24)
    draw_timer = create_timer(drawTime, seconds=1/30.0)
    def stopDrawingTime():
    posted in Coding help
  • RE: Pi-Hole app

    Hey Qake! Great to see people posting on the forums, sorry I'm just catching up with this :)

    If you're looking for something with two decimal places, you could write

    statText = '%.2f%%' % state['stats'][stats_list[i]['json']]

    ...which is a little confusing. I'll explain. In Python, the % operator when used in a string will substitute bits in.

    So you could write

    thing = 'Tingbot'
    print '%s is great!' % thing

    and the program would print to console Tingbot is great!. That's inserting a string into another string, but here you're inserting a number. And you want to print that number with only 2 decimal places. In that case, instead of writing %s, you write %.2f. The ".2" part means 'print with only 2 decimal places'. Check for more info on how to do this kind of thing!

    After that, you want to make the '%' sign. That requires %% because when using this style of formatting a single % has a special meaning.

    All in all, that makes '%.2f%%' % state['stats'][stats_list[i]['json']].
    Hope that's helpful!

    posted in Apps
  • RE: Glitchy GIFs with black pixels

    Hmm. I've seen this before, it seems to happen with some GIF encoders but not others. Do you know where this GIF came from / how it was encoded?

    posted in Support
  • RE: Please help with json.

    Hi meldrew!

    A JSON file is a file containing structured data. That just means that it's designed to be read/written by humans and machines. In the case of PhotoAlbum.tingapp it means making a file inside the app with this contents:

        "foldersList": ["/home/pi/Pictures/"],
        "extsList": ["jpg", "png"]

    and saving it with the filename settings.json.

    JSON has a particular syntax, and you have to get all the ", {, [ etc in the right places! You can paste it into this website and click 'Validate JSON' to check your syntax if you're not sure when you're editing it.

    posted in Coding help
  • RE: We need security!

    Hi tader

    I think you make some good points, but first I'd like to discuss some of the design philosophies behind Tingbot.

    When we started work on Tingbot, our ambition was to create a platform that removes as much friction as possible from the joy of creating with software. We built this platform on top of Linux, which is great we can build on/ the work of the great Raspberry Pi community.

    Linux, however, has some different design goal. Being primarily a server OS, security is paramount, and it also brings a lot of stuff from the UNIX world (multiple users, permission model).


    • Yes, Tingbot is accessible to anyone on the local network, without a password. This is what we wanted, because we wanted to make a device that’s easy to use.

      Tingbot works more like a Sonos, or a Chromecast. You don’t require a password to play music on Sonos speakers, once you're on the network. Most people have secure Wifi these days, and NAT prevents traffic from the internet, so I think this is a reasonable default. (and FWIW, all Raspberry Pis ship like this, with their password as 'raspberry').

      But, all networks are different, so I'm now considering adding some other auth methods so the Tingbots can be more locked down, at the user's discretion.

    • The apps run as root.

      The Unix permission model doesn't make sense on an embedded system. It would be silly to need 'sudo' to write to a pin on Arduino. 'Permission denied' really trips up and frustrates beginners. If you own a device, you shouldn’t have to argue with it to get it to do what you want.

      The upside of 'root' is never limiting users with ‘permission denied’, the downside is the possibility that you might write a program that hoses your SD card, in which case you can reflash it and reinstall your apps, which are still on your PC. I think it's a good trade-off!

    Sorry if that got a bit rambly. I realise that security can be a hot topic, but hopefully this will give you some idea of where we're coming from!


    posted in Support
  • RE: How to run Tingbot-os on Raspbian.

    Hi legoland

    Normally we recommend using one of the pre-made images disk.img, which is Raspbian Jessie underneath. (these are available here

    However if you'd like to install Tingbot OS on an existing Raspbian install, it may be possible. We lock to a specific version of libsdl because of a bug that appeared in later versions. That version of SDL is here: . Download and dpkg -i that, and it should resolve the above error.

    Cheers! Joe

    posted in Support
  • RE: Python 3?

    I think Python 3 is available on the Tingbot, but it's not supported :/ By default everything is run using Python 2, so the Python 3 environment will be pretty bare. You could try it by:

    • naming the main file main instead of
    • making sure that file is executable,
    • adding a 'shebang' line as the first line, specifying python 3 #!/usr/bin/python3.

    However, like I say there won't be any packages in there, so you'd have to SSH into the bot and install things like Pygame for Python (which may require a compile)... it might be a lot of work!

    posted in Coding help

Looks like your connection to administrators group was lost, please wait while we try to reconnect.