{"id":89,"date":"2016-03-07T10:42:55","date_gmt":"2016-03-07T18:42:55","guid":{"rendered":"http:\/\/www.scriven.ca\/~scriven\/?p=89"},"modified":"2016-03-07T10:42:55","modified_gmt":"2016-03-07T18:42:55","slug":"rephone-keyboard-hack","status":"publish","type":"post","link":"https:\/\/www.scriven.ca\/~scriven\/rephone-keyboard-hack\/","title":{"rendered":"RePhone Keyboard Hack."},"content":{"rendered":"<p>So, I posted before about the <a href=\"https:\/\/www.scriven.ca\/~scriven\/introducing-the-rephone\/\">RePhone<\/a> stuff I&#8217;ve been playing with but here I&#8217;ll talk about one specific deficiency and the fix I&#8217;ve programmed and released to the wild.<\/p>\n<p>The RePhone Kit Create software (<a href=\"https:\/\/github.com\/WayenWeng\/RePhone_Create_Kit_Source_Code\">source code<\/a> on github) provides a very basic cellphone and Xadow module interface. By default, it provides the following interfaces:<\/p>\n<p><!--more--><\/p>\n<ul>\n<li>Sim Card Status<\/li>\n<li>Battery Status<\/li>\n<li>Time\/Date (set manually)<\/li>\n<li>Display Xadow Sensor Board readings (if present, blank if not)<\/li>\n<li>Actions menu:\n<ul>\n<li>Light up the LED Strip hooked up to the Xadow V2 Duino with one of 3 pre-programmed patterns,<\/li>\n<li>Light up the Xadow v2 LED board with one of a bunch of pre-programmed characters,<\/li>\n<li>Play audio files stored in the root of the flash storage,<\/li>\n<\/ul>\n<\/li>\n<li>If-That-Then-This menu, where you can set up ITTT functions. You can trigger and respond via any of the other supported phone functions, including Xadow modules and SMS messages.<\/li>\n<li>Phone Functions:\n<ul>\n<li>Call address book number<\/li>\n<li>Type in a one-time number to dial<\/li>\n<\/ul>\n<\/li>\n<li>SMS\/Message Functions:\n<ul>\n<li>Select number from address book, or type in a one-time number<\/li>\n<li>Select pre-typed message to send<\/li>\n<\/ul>\n<\/li>\n<li>Settings:\n<ul>\n<li>Screen Brightness, from 1-6<\/li>\n<li>Speaker Volume, from 1-6<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Now, you&#8217;ll notice there&#8217;s no ability to edit the address book, or save typed-in numbers, or type in new SMS messages. The address book and message list are text files that must be edited while the RePhone is plugged into a computer.<\/p>\n<p>(With a bit of research about the Xadow V2 modules [that the RePhone connects to] you&#8217;ll also realise that the phone&#8217;s software only really supports the sensor &#038; light modules, but that&#8217;s another project\/post.)<\/p>\n<p>So I rolled up my sleeves and got to work. I&#8217;d gotten the RePhone for the purposes of hacking the software and hardware anyway, so this missing functionality gave me the perfect target to try and learn with. I followed the <a href=\"http:\/\/www.seeedstudio.com\/wiki\/Eclipse_IDE_for_RePhone_Kit\">instructions for installing the Eclipse IDE<\/a>, downloaded the source and started playing around.<\/p>\n<p>After I made it work well for myself (given that I don&#8217;t have a SIM card yet and so can&#8217;t actually send any messages to test, but it looks like it should work OK), I thought this would be a good time for me to share my changes with the world. I posted to the RePhone Forums about the keyboard, and there was some interest, so I setup my new <a href=\"https:\/\/github.com\/scriven42\/\">GitHub site<\/a> with a <a href=\"https:\/\/github.com\/scriven42\/RePhone_Create_Kit_Source_Code\">fork of the Kit source code<\/a>.<\/p>\n<p>The keyboard is implemented using the phone-pad code. It&#8217;s a 4 column, 4 row keyboard, with < and > keys in the bottom-left and bottom-right to swap between the 4 pages that are currently setup to implement the keyboard itself. The typed string is shared between the 4 pages, then when the checkmark button is pressed that string is put into the list of available SMS messages.<\/p>\n<p>I haven&#8217;t had any feedback so far, I&#8217;m hoping I didn&#8217;t miss anything in the rest of the code about how the sms is done, I&#8217;ll of course be doing my own testing as soon as my SIM cutter gets delivered by Canada Post. Let me know if anyone has issues!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So, I posted before about the RePhone stuff I&#8217;ve been playing with but here I&#8217;ll talk about one specific deficiency and the fix I&#8217;ve programmed and released to the wild. The RePhone Kit Create software (source code on github) provides a very basic cellphone and Xadow module interface. By default, it provides the following interfaces:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[13],"tags":[27,5,12,16,28],"class_list":["post-89","post","type-post","status-publish","format-standard","hentry","category-projects","tag-cellphone","tag-diy","tag-project","tag-rephone","tag-software"],"_links":{"self":[{"href":"https:\/\/www.scriven.ca\/~scriven\/wp-json\/wp\/v2\/posts\/89","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.scriven.ca\/~scriven\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.scriven.ca\/~scriven\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.scriven.ca\/~scriven\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.scriven.ca\/~scriven\/wp-json\/wp\/v2\/comments?post=89"}],"version-history":[{"count":1,"href":"https:\/\/www.scriven.ca\/~scriven\/wp-json\/wp\/v2\/posts\/89\/revisions"}],"predecessor-version":[{"id":90,"href":"https:\/\/www.scriven.ca\/~scriven\/wp-json\/wp\/v2\/posts\/89\/revisions\/90"}],"wp:attachment":[{"href":"https:\/\/www.scriven.ca\/~scriven\/wp-json\/wp\/v2\/media?parent=89"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.scriven.ca\/~scriven\/wp-json\/wp\/v2\/categories?post=89"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.scriven.ca\/~scriven\/wp-json\/wp\/v2\/tags?post=89"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}