Jeremy From thecustomgeek.com Writes:
JOS stands for Jeremy’s Operating System and is open source. I encourage you to use it, hack it, and do what ever you want with it. I know some might say “it’s not an operating system!” I know, but it’s just a name. It is based on Lady Ada’s TFTLCD and TouchScreen libraries. It shares some of the code from Lady Ada’s tftpaint sketch found in the TFTLCD library. It is written in the Arduino IDE and works perfect with the 2.8″ TFTLCD breakout board and the Touch Shield. This version does not support and SD card/bitmap functions as I do not have a touch shield yet. I will write these in when I get a Touch shield some day.
This was already A great piece of code Jeremy over at thecustomgeek.com created.
After giving it some trial Runs. I could instantly see the potential. Tho It worked great if you are on a uno board or the ATmega: 168/328′s. I found out quickly it wasn’t up to the task of running on a Mega 1280/2560. Which I myself use most of the time. Thus started my quest for improvements.
Video of features after the break….
With an already Long list of features. Some needed to be setup to run both on mega and uno’s alike. Because hey, who doesn’t like universal right.
For a list of features be sure to check out jeremy’s video below or his website.
Besides just a few tweaks here and there for overall universality and performance. The best updated new feature I’m proud to release is the latest in voltage referencing ability. Not only is the code already set up to compile the correct vREF registers for chip your using but, It can now give the most accurate Vcc reading possible using the Bandgap method reading the real voltage right at the processor. And the best part is you don’t need any extra wiring.
This means you can have the most accurate analog sensor readings possible. And the hard stuff is already done for you.
JOS Lets you save all you backlight settings and sleep settings to EEPROM so if you lose power you don’t lose your settings. This function has also been updated to check if you have any previous saves . If you don’t this Update saves you the hassle of Manually programming your EEPROM to get started by checking for previous saves and if there is none It automatically sets your backlight and sleep functions to a default values for you. Then you just go to the settings area and change them as normal.
These are just a few of the many updates But be sure to download the latest JOS Menu interface code below. And take it for a drive.
After you’ve had a look around here at SobiSource.com be sure to head over the thecustomgeek.com and see what other projects he’s working on this week.
Download JOS v2.0 Beta HERE
Newer Version Now Available HERE

Subscribe
This is exactly what I’ve been looking for a home automation project I’ve been working on…
Cant wait to try it out.
On my Mega 2560, it freezes up after tapping something, doesn’t matter what. After that, I can’t seem to do anything else. ANy clues on what might be causing that?
Ok, I’m going to need a little more info than it just doesn’t work. For example what does the screen show when you press something. Can you run other sketch’s? Have you Changed ANYTHING in the code? If you did, what? Perhaps a video showing you issue. We’ll go from there Ok,
Sobiguy
Sorry.
The first press I make on the screen is registered, and will take me to the menu or highlight the home icon red. After the first press on anything, no other presses will go through.
I changed nothing in the code, I downloaded it and uploaded it to to the board to test it out with no other steps in between.
I can run other sketches just fine.
Enlighnteing the world, one helpful article at a time.
w4o6Rv mzexlbvajyph
You codlun’t pay me to ignore these posts!
So I found the issue with the touch not working… At least for those using the Mega 2560. You must use
#define YP A1 // must be an analog pin, use “An” notation!
#define XM A2 // must be an analog pin, use “An” notation!
#define YM 7 // can be a digital pin—–uno=9 mega=23
#define XP 6 // can be a digital pin—–uno=8 mega=22
instead of whatever is there… This maps the correct inputs to the pins.
Your answer lifts the intleilgence of the debate.
Right on Josh… I went through it twice and was unable to reproduce it. I don’t have a 2560 figured there was no difference I now see i need to get one….
This is way more helpful than ayntihng else I’ve looked at.
any idea of why my TFTLCD does not recognize (tft.initDisplay and drawString)? I think I have all the libraries but I am not sure..
@Jaime
Make sure you have AdafruitsTFTLCD-Library and Adafruits Touch-Screen-Library for the TFT-lcd.
Links:
Adafruits TFTLCD-Library
https://github.com/adafruit/TFTLCD-Library
Adafruits Touch-Screen-Library
https://github.com/adafruit/Touch-Screen-Library
If you do remove them and try reinstalling them.
If that does/doesn’t fix it let me know.
thanks
Hi. I removed the libraries and installed them back again an my TFTLCD still doesn’t know what a ‘tft.drawString and tft.initDisplay ‘ are.. is there anything I can do ? Thanks
Ok, What arduino IDE are you using. 022 or 1.0
There is apparently some under lying issues wih v1.0 that i need to work out. arduino IDE 022 works perfect tho.
Ok so I went and redownloaded adafruits libs. So i am working with the same ones you are.
they have really changed everthing……So for now here’s what i can tell ya for sure and what i can do.
Here is a link to my personal libs and can guarantee that they work with IDE 022.
http://sobisource.com/files/tfttouch_tftlcd.zip
Thank you for bring this to my attention I will rework the jos. Updates will be coming soon…..
Jaime please try my libs with IDE 022 and let me know if they indeed work correctly!
Thanks…..
Hi, I too am having the problem with JOS. I have a UNO and an adafruit screen breakout no sd. I am just trying to get it to work like Jeremy did on youtube. Can someone give me the actual IDE version and which libraries that will work with my UNO.
thank you so much.
Marc,
The libs I used are linked in the comment before yours.
Also old version Of arduinos IDE can be downloaded from arduino’s software download page just scroll down. Here’s the link http://arduino.cc/en/main/software
Arduino 0022 is the one you want…
Adafruit Has released their newest GFX Lib for the TFT LCD. Which pretty much broke every program I’ve ever written for it. I am currently in the process of Updating All my Sketches for IDE 1+ and Adafruits new GFX LIBS they will be up in a few Days….
Thank you so much for getting back to me, I am very new to this and the only way I can learn is by example so I invested a lot of time, money and hope in this JOS project. I would really appreciate any help. Please post your updates here when you are all done.
thanks again.
I’m in the same situation as Marc T. This program looks like it has great potential but so far I get a string of errors every time. I can get Adafruit’s demo’s to work fine but the JOS looks like it has library errors. I’m looking forward to seeing your updated code because I don’t think I have the experience yet to troubleshoot it myself. Cheers!
Updates are out enjoy!!
Awesome Job!!!!! Everything works like a charm. Your a life saver.
i am working on a design for my college capstone project and would love to use this “OS” but i dont have the adafruit display i am using this one http://www.geeetech.com/wiki/index.php/2.4%22TFT_LCD
but it uses serial for the touch screen. is there a way to implement this? or will i have to bypass the serial chip?
i also need to scale the screen size down slightly but that should be relatively easy.
any help would be great!. thanks.
Kevin G,
As I don’t own this lcd, I can’t really Convert it for you, Less you want to send me one. lol JK
But I’d say tho, tedious should be fairly straight forward.
First , Thing you would have to do is remove the includes for adafruit’s libs and use the UTFT Libs instead.
Secondly, Replace all the #define, Println, tft.drawRect , etc… stuff with what ever UTFT calls for to print to screen.
Lastly, Guessing that UTFT declares The touch X,Y as variables, So use:
if (variable y > pixel && variable y 175 && variable x 1 && p.y 175 && p.x < 222)
Hope that makes sense for ya?
Let me know .
Sobiguy…
OOPS mistake before
Lastly, Guessing that UTFT declares The touch X,Y as variables, So use:
if (variable y > pixel && variable y pixel && variable x 1 && p.y 175 && p.x < 222)
so i broke down and ordered the adafruit display and got it all wired up to a mega but i get no touch response? everything else works fine. and it works when i run the paint sketch. not sure if im missing somethin here or what…
got it workin.