Monday, November 4, 2013

Zurk’s Firmware–Editing the Channels and Widgets

 

Introduction

There are two methods for editing the widgets and channels on a Chumby with Zurk’s firmware installed. First, I will go through editing the channels and widgets from the web interface, then I will go through the file structure on the Chumby and what files to edit and how.

If you can edit a channel or widget through the web interface then you should do so. You should only revert to editing the files on the Chumby when adding widgets to a channel or if there are problems with the web interface.

NOTE: I have seen inconsistent behavior on the Chumby if a channel other than “offline-mode” is used so I am using this channel in the description. I may document what the issues are if any at a later time but it is a low priority so it may never happen.

Editing Channels

Zurk’s firmware makes it very easy to edit channels through the web interface. There are only two things which cannot be done through the web interface.
- Reordering widgets
- Adding new widgets (other than the generic widget)

With the web interface, you are able to perform the following tasks

  • Edit a Channel
    • Edit Widgets
    • Delete Widgets
    • Add a generic widget (Add New Widget)
  • Delete a channel
  • Add New Channel

 

Accessing the Web Interface to edit Channels and Widgets

  1. First we need to obtain the Chumby’s IP Address from the “Chumby Info” screen
    To get to this screen, press the button on top of the Chumby One and tap the “SETTINGS” button, then tap the “CHUMBY INFO” button
    IP_Info_003
  2. On the PC, open a browser and navigate to the Chumby’s IP Address
    Web_001
  3. Within the “System Infrastructure Control” section, click on the “Multi-Channel Widget Editor (Chumby One)” link
    Web_003
  4. Select a channel to edit and click the “Edit Channel” button
    Web_004
  5. The channel editor will be displayed to allow you to edit the widgets in the channel
    Web_022

Editing Widgets

Using the Web Interface and Configuration Widget

  1. Open the web nterface and select the channel containing the widget you wish to edit
  2. Select a widget to edit by selecting it from the dropdown list or clicking on the image of the widget
    In this example, the AccuWeather widget was chosen
    Web_005
  3. The AccuWeather widget has two ways to edit the settings for the widget
    - Through the Configuration Widget
    - Through the Parameters Editor
    Web_007
  4. For this example, we will use the Configuration Widget. Enter your zip code or location in the “Location” textbox and click the “SAVE” link at the bottomWeb_008
  5. The new settings have been saved
    NOTE: Not all widgets will behave the same way on save but should display a confirmation message of some sort
    Web_009
  6. To see the changes on the Chumby, go to the control panel and tap the “CHANNEL” button
    Web_010
  7. Tap the “RELOAD” button
    Web_011
  8. When the widget reloads on the Chumby, you will see that it has been updated
    Web_012

Using the Web Interface and Parameters Text

Not all widgets have a Configuration Widget. To change the settings for these widgets, you will need to edit the Parameters by using the Parameters Textfield, “Replace Parameters” button, and the “Confirm Replace” button.

  1. Select the “Intercom” widget using the dropdown list and the “Edit Widget” button or clicking on the widget thumbnail
    Web_013
  2. In the textfield, we will modify the value for the URL by changing it from http://intercom/jpg/image.jpg to http://www.wired.com/magazine/wp-content/images/19-04/cover_1904.jpg
    Web_014
  3. Click on the “Replace Parameters” button
    - A new textbox is displayed
    - Wait for the page to finish loading
    NOTE: In Chrome, wait for the loading indicator to go away
    Web_015
  4. Once the loading indicator goes away, indicating that the page has loaded, click the “Confirm Replace” button
    Web_016
  5. To see the changes on the Chumby, go to the control panel and refresh the channel (refer to steps above for refreshing the channel)
    Once the channel reloads, you will see that the Intercom widget displays the updated image
    Web_017

Editing widget settings on the Chumby itself using SSH

You should never need to edit widget settings this way but I have included it in case something goes wrong and you need to do so. The settings for the widgets are located in the the following path
/mnt/storage/zurk/lighty/html/zchannel/channels.c1/<channel>/<widget>

  1. Run PuTTY and log into the Chumby device
    (instructions for connecting to the Chumby using PuTTY may be found in the 2 Nov 2013 Zurk’s Firmware - Silencing the Chumby on Boot post)
  2. For this example, we will edit the Radar widget in the offline-mode channel. We will first change to the directory for the widget by entering the following command
    cd /mnt/storage/zurk/lighty/html/zchannel/channels.c1/offline-mode/RadarWeb_018
  3. Next, we will open the parameters.txt file in the vi editor by entering the following command
    vi parameters.txt
    Web_019
  4. Now edit the file by changing the URL value to http://stwww.geekexchange.com/wp-content/uploads/2013/10/Ada-Lovelace.jpg
    (Some information for using vi is located on the 2 Nov 2013 Zurk’s Firmware - Silencing the Chumby on Boot post)
    Web_020
  5. To see the changes on the Chumby, go to the control panel and refresh the channel (refer to steps above for refreshing the channel)
    Once the channel reloads, you will see that the Intercom widget displays the updated image
    Web_021

Conclusion

The Channel editor functions in the web interface are very capable and nearly complete. The web interface also provides a very good environment for modifying the settings/parameters for the widgets. There are at least three different ways to edit the parameters of a widget. This post showed you how use two methods through the web interface and a third way by editing them directly on the Chumby device.

Sunday, November 3, 2013

Zurk’s Firmware – Time-sinks

 

Introduction

There are many time-sinks in the Zurk’s firmware for the Chumby. What I mean by this is there are many things that can waste your time because they appear to be works in progress or abandoned ideas that were never completed. In the industry this is called dead code and is harmless but can waste someone’s time particularly if there is documentation present which refers to these items which leads users down the path of making changes and wondering why things are not working as documented. I am going to document a few that I found so hopefully others will not waste their time.

If you believe that the items I have identified as time sinks are not and are actually useful then please comment but please fully explain why it is useful and provide solid references or steps to make them useful. My biggest pet peeve is having people point others to vague references or incompletely documenting steps. However being a developer I know that writing documentation is one of the least favorite things that we must do and I would rather skip it as well but remember that you can have the greatest idea or the best product but if you cannot communicate to others why your idea is the greatest so that they can understand it then it is totally worthless and will help no one.

When I find something that I feel has value but is poorly documented, I attempt to produce documentation which will allow others to use it and modify it if necessary so they can receive some benefit from it.

Zurk has done an excellent job with creating firmware that allows our Chumby devices to continue to be useful even though Chumby Industries Severs function no more. I do appreciate Duane for maintaining a server to allow the Space Clock widget to run on our Chumbies. It has allowed me to wait until now to actually install the off-line firmware. I was hoping that the server(s) would be brought back to life but I must face reality and move on but I do not want to give up on my Chumby just yet. I really like these devices and intend to use them until they die or longer.

Time-sinks

  1. Weather Data Editor
    The README.TXT file that comes with Zurk’s firmware mentions that you should edit the Weather information for your location using the Multi Channel Widget Editor or Weather Editor.

    You should edit the widgets and forget the Weather Editor, which is the Weather Data Editor link on the web interface. The Weather Data Editor edits the /mnt/storage/zurk/psp.c1/zwapi.sh script but it appears that the script is never run. It also appears that if/when it does run, you need to include several image widgets to point to the image files created to make this useful.

    Please not that my Chumby has been running for several hours and the images have not been written to /mnt/storage/zurk/tmp, which is why I believe the script does not run.
  2. Adding a Widget
    I will go into a few things here about adding a widget. First there is some documentation discussing adding widgets but it is outdated and confusing. I see no way in the world that someone without some technical background can add a widget successfully. It does appear that Zurk may be on the path to make it easy but still has some work to do. Unfortunately I found that the widgets that are located at /mnt/storage/zurk/www are currently useless and may be part of a future project to make adding widgets easy. I spent some time in this directory thinking that widgets needed to be in this directory to be able to be added in the web interface. No matter how I tried adding a new widget through the “Add New Widget” button, it would create a generic widget. (It does state that in the description before the textbox.)
    Web_006

    I then tried several different ways to add a widget but was finally able to figure it out. I will outline the steps in a future post.

I am certain that there are other time-sink that I will come across so I plan to update this post when I find them.

Conclusion

There are many ways to waste time poking around Zurk’s firmware. I will try to save you some time by providing detailed guides on how to get your Chumby up and running the way you want with out wasting too much of your time.

Please post constructive and informative feedback to let other know about things that you have come across.

BTW: Here is an example of a totally useless response I found relating to adding widgets. The reason that I find it totally useless was the individual writing the response assumed that the poster did not see the button, which I doubt, and they assumed that the button actually performed a useful function. I assume that the individual who wrote the response had not actually used the button to add a widget. If they did then they should have followed up with a detailed explanation on how to use it to add a new widget. I will be writing detailed instructions on how to use the button and add a new widget.

REF: http://forum.chumby.com/viewtopic.php?id=8836


1. yes you didnt know how to add new widgets. the gigantic add new widget button on the web control panel must have missed you, being that its right front and center and you just have to click it.


REMINDER: This post is referencing Zurk’s firmware version 29.0. This post may or may not apply to different versions. All comments should deal with version 29.0 only.

Saturday, November 2, 2013

Zurk’s Firmware - Silencing the Chumby on Boot

 

Introduction

If your Chumby is in a sleeping area or you just want the Chumby to boot up quietly then you may follow these steps to silence the Chumby when it boots up.

There are two sounds which play with Zurk’s firmware installed

  • Talking Clock (Introduced with Zurk’s firmware)
  • Introduction Video (On original firmware)

Silence of the Chumby on Boot SmileyShhh

  1. First we need to obtain the Chumby’s IP Address from the “Chumby Info” screen
    To get to this screen, press the button on top of the Chumby One and tap the “SETTINGS” button, then tap the “CHUMBY INFO” button
    IP_Info_003
  2. On the PC, open a browser and navigate to the Chumby’s IP Address
     Web_001
  3. Turn on the SSH Server so we can connect to the Chumby from the PC using PuTTY. Click on the “Enable” link for the SSH Server
     Web_002
  4. On the PC, start PuTTY
  5. Enter the IP Address from the “Chumby Info” in the step above and click the “Open” button
     PuTTY_001
  6. If you see the “PuTTY Security Alert”, you may click the “Yes” button
      PuTTY_002
  7. When you see the prompt “Login as:”, type root and hit Enter
    You will then see the Chumby Logo ASCII Art
     PuTTY_003
  8. At the prompt, type the following command:
    vi /mnt/storage/zurk/debugchumby
  9. Comment the lines with TalkingChumby in them.
    If you are not familiar with vi, there are several good references if you do a web search such as http://www.cs.colostate.edu/helpdocs/vi.html

    i – Inserts text before the cursor until the <Esc> key is pressed
    :wq - quit vi, writing out modified file to file named in original invocation

    Comment the lines by adding # as the first character
    • Line 11: /mnt/storage/zurk/TalkingChumby/flite_cmu_us_kal16 -t "Welcome to Zurk's Chumby Offline Firmware v 29"
    • Line 27: /mnt/storage/zurk/TalkingChumby/flite_cmu_us_kal16 -t "Welcome to Zurk's Chumby Offline Firmware v 29 in networkless mode"
    • Line 32: /mnt/storage/zurk/TalkingChumby/flite_cmu_us_kal16 -t "Error the storage disk is read only"
    • Line 55: /mnt/storage/zurk/TalkingChumby/flite_cmu_us_kal16 -t "Building the 512 MegaByte swapfile"
    • Line 57: /mnt/storage/zurk/TalkingChumby/flite_cmu_us_kal16 -t "Making the swapfile"
    • Line 59: /mnt/storage/zurk/TalkingChumby/flite_cmu_us_kal16 -t "Swapfile built O K"
  10. Reboot the Chumby to test that the change worked
    NOTE: The Intro Video still plays so you will hear the bubbles. We will fix that next.
  11. To remove the opening video and the bubble sounds, we will need to remove the micro SD Card and insert it into the PC and open a Linux Virtual Machine (VM)
    See the steps for backing up the micro SD Card in the previous post titled Zurk’s Firmware for information about removing the micro SD card
    NOTE: The Linux VM that I am using is Ubuntu 12.04 LTS
  12. On the Linux VM, open a terminal window with the key combination of <Ctrl> + <Alt> + T
  13. In the terminal window, type the following command:
    sudo nautilus
  14. The Nautilus file explorer will launch
     SEGT0N~9
  15. There are a total of four partitions on the micro SD Card. We need to access the two 150 MB partitions. Find one of the 150 MB partitions and open it. Navigate to /<drive>/usr/chumby/scripts and open “start_opening_anim” in the file editior (gedit)
  16. Add a line before “BRAND=$1” and type “exit”
     SI91A6~1
  17. Save and close the file then edit the same file on the other 150 MB partition
  18. After editing the two files, eject and remove the micro SD Card from the PC and reinsert it into the Chumby
  19. Follow the previous steps for accessing the SD Card to put the Chumby back together
  20. Startup the Chumby and make certain that the intro video does not play

Conclusion

The above steps show how to make the Chumby boot up quietly. If you have any problems, carefully review your work to make certain that everything is done correctly.

In my write-ups, I try to capture every step and not leave anything out. If you find that I have missed a step or have anything incorrect, please add a comment. Also remember that these steps may or may not work with other versions of Zurk’s firmware. These instructions were specifically written for Zurk’s firmware version 29.0.

Friday, November 1, 2013

Zurk’s Firmware

 

Introduction

I have finally gotten around to install Zurk’s firmware on my Chumby One. It is nicely done but a little rough around the edges. I also have had a difficult time adding new widgets and when I did figure it out something went wrong and caused the channel to stop looping.

Baseline used for this post

  • Chumby One
  • Zurk's Offline Firmware version 29.0
  • PC running Windows 7

Issues Identified

  1. The only channel that appears to work is offline-mode. If you create other channels and switch to them, the Chumby may revert back to the offline-mode channel even if it does not exist and strange behaviors may occur.
  2. There is no way to change the order of widgets within a channel. The widgets are order in alphanumeric order. To work around this, you may want to add a numeric prefix to the name of your widgets. (i.e. 005_SpaceClock)

Here are the steps I took and what I found along the way.

Before getting started there are a few things to do:

Backup Internal SD Card

This is an optional but recommended step. If you are not comfortable taking your Chumby apart, then skip this step.

NOTE: You need to have a micro SD Card Reader or adapter to complete this step.

Remove micro SD Card from the Chumby One
Most photos are from IFIXIT Chumby One Teardown at http://www.ifixit.com/Teardown/Chumby+One+Teardown/1614

  1. Remove the covers over the screws on the back
    Backup SD Card 001
  2. Remove the four screws
    Backup SD Card 002
  3. Remove the back
    Backup SD Card 003
  4. Slide the battery holder out and locate the micro SD Card
    NOTE: The picture is for reference only! There is no need to remove any cables!
    Backup SD Card 004
  5. Open the SD Card holder by sliding the cover in the direction of the open arrow
    Backup SD Card 005
    Flip up the cover
    Backup SD Card 006
  6. Remove the micro SD Card and insert it into the micro SD adapter and/or card reader on the PC
    NOTE: If you see a dialog box prompting you to format the card, click Cancel!
    Backup SD Card 007
  7. On the PC, run Win32DiskImager
    Backup SD Card 008
  8. Enter a filename for the SD Card Image
    1. Make certain that the correct drive is selected
    2. Click the folder button to select a location and filename for the image file
      Backup SD Card 009
  9. Select the location and enter a name for the image file and click the “Open” buttonBackup SD Card 010
  10. Click the “Read” button to create the image file
    Backup SD Card 011Backup SD Card 012
  11. Once the process completes, you will see a “Complete” dialog box. Click the OK button and exit/close Win32DiskImager
    Backup SD Card 013
  12. Remove the micro SD Card from the PC and carefully reinsert into the Chumby
  13. Reverse the process to reassemble the Chumby
    NOTE: You may want to apply power to the Chumby before reinserting the screws to make certain it comes back on. If it does not come back on, attempt to realign the micro SD Card and try again

Installing Zurk’s Firmware v 29.0

  1. Read the README.TXT file in downloaded zip file!
    Check the following prerequisites
    1. Ensure your Chumby is activated
    2. Make certain that your Chumby is on the network and fully operational
    3. Ensure that the firmware is v1.0.7 for Chumby One or v1.8.2 for Chumby 8
      To get to this screen, press the button on top of the Chumby One and tap the “SETTINGS” button, then tap the “CHUMBY INFO” button
      ChumbyVersion
  2. Unzip Zurk’s Firmware (zurk_chumby_one.zip) to a blank USB thumb drive
    • FAT32 formatted
    • 1 GB or greater
    • Root folder
    • Make sure you keep directory structure
  3. Power off your activated, networked, functional Chumby
  4. Insert the thumb drive
  5. Power on your Chumby
  6. Wait for the voice prompts (3-5 min)
  7. When the Chumby reboots remove the USB thumb drive
    • The first boot after install will take a while (1-2 min)
    • The next boot times are much faster
    • If upgrading with on board firmware already on the Chumby, the procedure is the same. The loader will detect the earlier install and upgrade it automatically.
  8. After the Chumby reboots, you will need to change the time and location
  9. You may also change the brightness and sound to your preference

Conclusion

We have backed up the original Chumby firmware and installed Zurk’s firmware. The next steps are to silence the Chumby on boot then modify the channels and widgets so the software is tailored to our location, needs, etc. The final step will be adding additional widgets to the channels.

Saturday, April 21, 2012

End of Chumby?

Sad day today as I read Joel Ward's blog at http://joelsef.blogspot.com/2012/04/rip-chumby.html. It seems that the end is nigh for Chumby. I followed up and found a few other sites stating the same thing.

http://www.engadget.com/2012/04/19/chumby-halts-hardware-sales-out-of-business/

http://www.pcpro.co.uk/news/374203/end-of-the-road-for-chumby

In Joel's blog he mentions two projects which may help Chumbies to stay alive after Chumby Industries shuts down the Chumby Network.

Zurk's Chumby One/Infocast 3.5 firmware
Zurk's Infocast/Chumby 8 firmware


Wednesday, October 5, 2011

TxtMsg Web Application Setup

UPDATE: The source code has been posted at https://code.google.com/p/text-message-for-chumby/.

There are three different projects which makeup the TxtMsg widget. First, there is the widget itself, then there is the configuration widget, and lastly there is the web application. This post will deal with the setup and configuration of the web application piece.

Requirements

The web application was written using C# and runs on IIS. The code is short and simple so it should be very easy to port it over to PHP or Java and host it on Apache.

  • IIS Server
  • Ability to set folder permissions on the server

 

Overview

The web application uses file storage to store messages and Chumby device information. The data should be kept in a database however I wanted to through something together quickly and make it easy for people to understand. Feel free to modify the application to use a different storage method. This entry will address the implemented file storage solution.

Steps to install on IIS

  1. Download and unzip the source code.
  2. Copy the web_TextDB folder to a location you use for your web applications.
  3. In IIS, create an application and set the root directory to the wwwroot folder.
  4. Determine what account IIS is using for the anonymous user.
    1. IIS 6, this will be the identity of the Application Pool
    2. IIS 7, this will be the also be the identity of the Application Pool however if the user is ApplicationPoolIdentity then we need the IUSR group as the ApplicationPoolIdentity is a member of the IUSR group.
  5. Grant the user identified in the previous step full permission to the <wwwroot>\TextMsg_Files folder.
  6. Restart IIS
  7. Edit line 50 in the <wwwroot>\App_Code\ChumbyTextMessage.cs file so the path is correct.
    private const string CHUMBYDEVICEFILEPREFIX = "~/Chumby/TextMsg_Files/";
  8. Now you should be able to connect to the server application to generate the <wwwroot>\TextMsg_Files\DeviceList.txt” file by going to http://localhost/chumby/ChumbyServer.aspx?ChumbyName=Richard's%20Office&ChumbyID=93164D65-A1F1-1C2C-735F-099E2E5A0FF7&MaxMessages=99&MaxDays=99&UserName=&Password=&Paramaters=
    1. Change the URL to match your server
    2. Change the parameters
      1. ChumbyName: This is the name of the Chumby such as “Richard’s Office”.
      2. ChumbyID: This is a unique GUID which is generated for each device and I believe each widget.
      3. MaxMessages: This is the maximum number of messages to retrive.
      4. MaxDays: The maximum number of days to pull and display.
      5. UserName: Optional – Username to authenticate to the web application. (Not used in demo)
      6. Password: Optional – Password to authenticate to the web application. (Not used in demo)
      7. Paramaters: Additional parameters may be passed to the function. These are stored in an array and passed to the function.
  9. If successful, the TextMsg_Files folder will have the DeviceList.txt file. If you open the file in a text editor, you will observe the following information stored in it.

    ChumbyID    ChumbyName    Added    LastAccessed
    93164D65-A1F1-1C2C-735F-099E2E5A0FF7    Richard's Office    10/5/2011 7:05:40 AM    10/5/2011 7:05:40 AM



    1. ChumbyID: This is a unique GUID which is generated for each device and I believe each widget.
    2. ChumbyName: This is the name of the Chumby such as “Richard’s Office”.
    3. Added: Date & Time the chumby was added to the file. (GMT)
    4. LastAccessed: Date & Time the chumby contacted the server. (GMT)

  10. If successful, the resulting webpage will display the default message to display on the chumby device.
    10/05/2011 07:05:40	How to send a Text Message	<font color="#000080" size="16">Steps to send a message to this widget.</font><ul><li>Go to <font color="#0000ff"><a href="http://localhost/chumby/ChumbyAddMessage.aspx">http://localhost/chumby/ChumbyAddMessage.aspx</a></font></li><li>Select "Richard's Office" from the Chumby drop-down list</li><li>Enter your name and message</li><li>Click the "Submit" button</li></ul>



    1. Date (GMT)
    2. From
    3. Body

  11. If you want to add a message to display on the chumby, you may go to the “ChumbyAddMessage.aspx” page. On my test server this is http://localhost/chumby/ChumbyAddMessage.aspx.
  12. On this page, you will see the list of chumby devices which have contacted the server. If you just set this web application up and performed the previous seps, you will only have one chumby listed which in my case is “Richard’s Office”.
  13. Select the chumby from the list and enter a name in the “From” textbox and a message in the “Message” textbox and click the “Submit” button.
    SendMessage
  14. You will now observe a new text file in the <wwwroot>\TextMsg_Files folder with the chumby id for the file name. This is another text file which contains the information from the message.

Saturday, October 1, 2011

TxtMsg

TxtMsg was written to display simple messages on the Chumby One and Classic Chumby devices as well as the Chumby Android application. The application may be found at http://www.chumby.com/guide/widget/TxtMsg. I will be including source code for the Chumby widget as well as the web application. My hope is someone will modify the application and make good use of it. I have been thinking this may be a good widget to display messages from systems such as network centers displaying security issues however in such an environment there may be better tools to display such messages or the security environment may not allow a Chumby device in the first place.
Another use may be to display automated messages of some sort, however one must question why a user would use the Chumby when email and SMS messages may be more effective. If anyone has any other ideas, please comment and let me and others know what you think.

Overview


The TxtMsg widget grabs the contents of the webpage specified in the widget settings. It is also possible to connect to a password protected webpage by providing a username and password in the widget settings.
The web application will return a tab delimited text file to the Chumby widget with the date (GMT), sender, and message. It is possible to include some HTML however the HTML is very limited.

I will attempt to update this with more details shortly. Sorry for the delay.