Pyboard based GSM phone.

Showroom for MicroPython related hardware projects.
Target audience: Users wanting to show off their project!
Post Reply
jeffm
Posts: 23
Joined: Tue Mar 10, 2015 9:11 am

Pyboard based GSM phone.

Post by jeffm » Fri Nov 10, 2017 9:39 pm

I have implemented a basic GSM phone using a pyboard, the LCD160CR display skin and a SIM800L GSM module. The phone implements voice calls and composing, sending and receiving SMS messages. It operates from a small (800mah) Lipo battery which lasts for around a week in standby mode.

I looked at using @pythoncoder’s impressive LCD160CR UI library, however, it proved to be overkill in terms of resources as the phone interface is primarily buttons and text labels. You really need to use a stylus (i.e. matchstick) to use the SMS text entry keyboard. The code and details can be found at:

https://github.com/jeffmer/micropython-upyphone

The following images give a flavour of the touch screen interface. More together with an explanation of the operation can be found in the github repository.
incomingsms.jpg
incomingsms.jpg (43.89 KiB) Viewed 10828 times
readmessage.jpg
readmessage.jpg (42.99 KiB) Viewed 10828 times
writemessage.jpg
writemessage.jpg (45.35 KiB) Viewed 10828 times

User avatar
rcolistete
Posts: 352
Joined: Thu Dec 31, 2015 3:12 pm
Location: Brazil
Contact:

Re: Pyboard based GSM phone.

Post by rcolistete » Sun Nov 12, 2017 10:29 am

Fantastic ! A GSM phone with MicroPython and only 100 KB of free RAM !
My "MicroPython Samples". My "MicroPython Firmwares" with many options (double precision, ulab, etc).

User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: Pyboard based GSM phone.

Post by pythoncoder » Mon Nov 13, 2017 8:40 am

That is most impressive and must have taken a good deal of effort. I'm amazed you managed to fit a qwerty keyboard on that display in portrait mode. And that the touch overlay is sufficiently precise to support it.

Perhaps there is a case for a mini-gui for the LCD160CR supporting a subset of the features of mine but consuming less RAM - but when you write a library it's hard to assess how many people actually find it useful.
Peter Hinch
Index to my micropython libraries.

jeffm
Posts: 23
Joined: Tue Mar 10, 2015 9:11 am

Re: Pyboard based GSM phone.

Post by jeffm » Mon Nov 13, 2017 10:03 am

@pythoncoder
And that the touch overlay is sufficiently precise to support it.
The accuracy is outstanding and much much better than some other cheap resistive touch screens that I have. There is occasionally some jitter on touch but it quickly settles on the pressed key. The trick is to ensure that the desired key is highlighted before releasing it.

SpotlightKid
Posts: 463
Joined: Wed Apr 08, 2015 5:19 am

Re: Pyboard based GSM phone.

Post by SpotlightKid » Wed Nov 15, 2017 11:06 pm

This project was also highlighted in one of the Python newsletters I have subscribed too. Very impressive!

User avatar
rcolistete
Posts: 352
Joined: Thu Dec 31, 2015 3:12 pm
Location: Brazil
Contact:

Re: Pyboard based GSM phone.

Post by rcolistete » Fri Nov 17, 2017 12:51 pm

Russian news/article about uPyPhone :
http://www.cnews.ru/news/top/2017-11-14 ... rtfon_s_po (in Russian)
https://translate.google.com/translate? ... rtfon_s_po (translated to English)
My "MicroPython Samples". My "MicroPython Firmwares" with many options (double precision, ulab, etc).

jeffm
Posts: 23
Joined: Tue Mar 10, 2015 9:11 am

Re: Pyboard based GSM phone.

Post by jeffm » Fri Nov 17, 2017 8:01 pm

Yes, I saw this quite bizarre article. The developer Alexei mentioned in the article has a Github account which has a forked version of my repository as indicated in https://github.com/AlekSi/micropython-upyphone.

jeffm
Posts: 23
Joined: Tue Mar 10, 2015 9:11 am

Re: Pyboard based GSM phone.

Post by jeffm » Wed Nov 22, 2017 3:45 pm

Now updated with internet access over GPRS. The sim800l now includes a urequest like interface to the SIM800L module's HTTP AT interface. This allows both http and https requests. Using these I have implemented two example applications. The first fetches and displays currency exchange rates - the code is very similar to that posted by @mcauser for his Bitcoin display. The second application fetches and displays weather information using the wunderground api - see below:
weather.jpg
weather.jpg (39.82 KiB) Viewed 10582 times
The icon is a JPEG converted from the usual wunderground GIF icons. It would be nice to be able to display GIFs directly on the LCD160CR - any suggestions as to how best to do that?

Post Reply