Hacker News new | past | comments | ask | show | jobs | submit login
My open-source, do-it-yourself cellphone (2013) (arduino.cc)
201 points by max_ on June 8, 2016 | hide | past | favorite | 67 comments



The actual "phone" part is what's difficult about doing this, and I'd be very impressed if someone did manage to write a full GSM stack and produce working --- if not completely legal due to all the regulations --- hardware themselves (I believe Fabrice Bellard has done something similar), but then again, most of the large manufacturers don't design and produce the GSM hardware in mass-produced phones either. As this project shows, taking an existing GSM modem and building an interface around it is not very difficult in comparison.

A comparison with a mass-produced product of similar functionality 3 years ago yields some interesting datapoints:

http://www.bunniestudios.com/blog/?page_id=3107


OsmocomBB has a complete GSM mobile station Stack. But as a firmware for a traditional Phone (motorola C123 for example).

http://bb.osmocom.org/trac/


The phone is only a dumb modem in that setup, all the processing happens on a connected PC. It's really impressive, and a cool project to play around with, but it's not a replacement firmware you can load on an old brick phone and have a functional mobile.


http://bb.osmocom.org/trac/wiki/mobile

I could imagine that this could be integrated in the firmware.


Yes, that's the program I was referring to. It's way too large and heavy to fit in a phone. It would be a significant project to slim it down and optimise - many have started, none has succeeded yet.


This is great! Here's my (more retro) take on it:

https://www.stavros.io/posts/irotary-saga/

I'm looking to make a PCB for it, as the Arduino Uno + shield is way, way too big for this. Does anyone know of a good way to do that? I looked at the SIM900 module but I was a bit intimidated by all the pins.

The OP's build seems to be using the Quectel M10, maybe it won't be too hard to get that running...


Your project and trailer was awesome. Love that you brought back the experience of slamming the phone on some prick. Especially after all the work the user goes through dialing the number. Outrageous that the other party didn't appreciate the call! Haha.

Also, what was once ancient is now innovative. :)

EDIT: Rewatching the trailer, I just noticed a new feature you can add to your marketing material. The Redial button gives the prick a second chance with one press. Still a prick? Slam! Again! Redial-slam should be considered an extra feature given it's used for specific situations & hard with regular rotary.


Haha, thanks! I actually need to add the redial feature to my post, with that exact use case. "redial Hey, I just called again to see if you're still an ass. Yes? slam, redial Oh, also, screw you for having three zeroes in your phone number! slam"


You won't need all the pins, but these modules are fussy about power and you need to route the antenna properly.


You're quite correct. I'm going to use a 5V regulator, which seems to do the job very well on the shields I've seen, so power shouldn't be a problem. The antenna is going to be an issue if I want to make it a track on the PCB, as I have no idea how to route antennas. Does it only have to be a specific length? KiCAD has tooling to help that. Otherwise, I can just stick an external antenna on it, like most shields have.


5V regulator is not correct, that would be too convenient: the module datasheet says "3.3~4.6V 4.0V nominal". They're designed to be driven directly from a LiPo battery (via short leads with appropriate decoupling, power draw is very spikey). The Arduino shield has a LMZ12002TZ switchmode chip on it.

The routing from the device to the antenna needs to be controlled impedance, ie specified width and distance from ground planes. You'll need to leave a ground plane cutout round the SMA connector. Actually building a PCB track antenna requires specialised software voodoo to get right, especially if you want to retain multi-band capability.

(My experience is with a different module with identical specs; we found that 4.8V caused no obvious problems except that maybe 1 in 10 firmware downloads would irrevocably brick the device).


Oh hmm, thank you for that information, it's very useful. I do run it from a LiPo battery, so hopefully that will work well after I decouple it (with what I'm guessing should be a rather large capacitor).

As for the antenna, the SMA route sounds much easier, so I'll probably do that. As for firmware downloads, I pretty much only need the device to make and receive calls, so I shouldn't need to upgrade the firmware much past the first time.

Thanks again for the info!


The Hipsters of Berlin and elsewhere in the world will love this. You should sell it :)


Everybody has been saying that, but I can't be bothered :P Maybe I will, if I can make the PCB version, since that would be much easier to assemble.


The guys of the Fablab Hamburg in Germany already created a PCB from it and used it produce a low volume of cell phones from it. Just ask them politely for the PCB.

Here two German articles about the initiative:

http://www.heise.de/make/meldung/Temporaere-Handy-Fabrik-in-...

http://www.heise.de/make/meldung/Handy-Selbstbau-Projekt-in-...


Hmm, this seems to be the exact same PCB mentioned in this post (and with the same module). Routing the PCB isn't really the hard part, it's mostly figuring out how the pins need to be connected. The datasheet is pretty long, but I'll buy a bare module now and try to get it working.


Very cool, thanks for posting.


Thanks, I'm glad you like it!


By looking at the photos of people bent over their Arduinos, I think we have lessons to learn from clock repair people and their high standing tables.

http://www.michlmayr.com/images/gallery/gallery-15-big.jpg


Everything about this interview is amazing:

https://www.hodinkee.com/articles/interview-meet-dan-spitz-a...

Jump down to "Why did you design a watchmaking bench?"


The bench itself is impressive too.

http://danspitz.com/spitz-bench/


oh thanks, I forgot to include that page. That's the really amazing one.


This is a great article. Thanks for sharing.


Also: where are the fume extractors?


Too bad that those tables don't seem to be adjustable, you're still going to have problems if you're too tall.


Maybe buy a height-adjustable standing desk. I used one of these for about 10 months working on a project in Denmark where the motorised versions seemed very common. Gives a break from sitting down all and useful for huddling a couple of colleagues around.

http://www.ikea.com/gb/en/campaigns/home-office/standing-des...


Make sure it's a sturdy one. All of the standing desks I've worked at were only supported by two poles, and weren't particularly stable along the long axis. I wouldn't want to use them for electronics work, bench supplies and oscilloscopes are a lot heavier than monitors and keyboards.


If anyone would like to give it a try, you can get a kit including PCB and parts at AISLER https://aisler.net/damellis/cellphone2hw/diy-cellphone

Please note that the kit does only include parts which are available from the major distributors. You may check the Bill-of-materials at https://aisler.net/damellis/cellphone2hw/diy-cellphone/bom

Disclaimer: I'm one of the founders of AISLER


I don't understand how it is a PhD project, at MIT nonetheless. From http://web.media.mit.edu/~mellis/cellphone/index.html I get it is not much of a technical projet, more like a sociological one (how hard can it be for a layman, is that useful, why, etc.), but I don't understand what the challenges are.

Can you explain how it useful as a research project ? What are you expecting to learn overall ?

Thank you.


MIT media lab tends to actually be in the space you are describing (novel application and positive social impact rather than fundamental science. For what it's worth David Mellis is one of the original creators/founders of Arduino so everything he does is probably seen through that lens.


Doesn't the third sentence in the article you linked to answer your questions?


Not really, I think I agree with the GP. This is a pretty easy project, and even though the author spun it well, it's still nowhere near PhD level for even unrelated fields.


Maybe I was just looking in the wrong place, but I cound't find much info about the baseband processor. Is it open or proprietary?


It uses the Arduino GSM shield, which itself uses the M10 by Quectel, which I believe is a proprietary design.


I know they call it hardware because it's hard, but is it possible to do maybe GSM/Edge with a common SDR, disregarding license and legalities?


Fabian Bellard built an LTE basestation using SDR (so almost everything is done in software). So a GSM mobile stations should be possible, as it has less capabilities.

http://www.bellard.org/lte/

Again, as you said, legalitites. A DIY device would be difficult to approve by whatever telecom supervising agency your country has. That's one of the reasons the current ecosystem of blackbox GSM modems (such as the one used by this Arduino phone) exist. These modems run closed-source software that can theoretically react to network events, possibly get updated OTA. So there's the icky part from a security viewpoint.


SDR -> Software Defined Radio -> receiver. You'll need a transmitter too.

Though I'm sure some clever person somewhere hacked one to do just that.


SDR transceivers have been on the market for quite some time; have a look at the HackRF, for instance.


At least Wikipedia says a software defined radio can also include a transmitter. I've seen a couple programmable transceivers, but virtually all of the cheap SDRs are just receivers (usually repurposed TV sticks).

I know that someone at least build a setup where they could record and decode GSM with a reciever, but I can't find it right now.


...and the Quectel M10 itself uses the Mediatek MT6223, a common very-low-end feature phone SoC.


I'm not aware of any open basebands existing, and I'm not sure how they'd pass regulatory requirements.

There is an open GSM base station system though, OpenBTS. But you definitely can only use that for testing.


The FreeCalypso Project is working on a libre phone. Looks like they're using a baseband processor from a TI Chipset.

https://www.freecalypso.org/



   "a laser-cut wooden enclosure"
You've redefined the 'burn' phone. Awesome project! I wonder if something similar could be done with a Raspberry Pi?


It's been done a few times. Here's a good example:

https://www.raspberrypi.org/blog/piphone-home-made-raspberry...


Looks cool, but also a solid way to get held up at airport security. ;)


If you want something even easier try Telit. They include Python interpreter (an ancient one) and are not too reliable, but everything can be done onboard :)

Rant: as I come from EE backround, wiring up a QUECTEL does not sound DIY to me.


Ohh shut up and take my money!

Really. If you sold them (for a reasonable price) I would totally buy one.


What a great idea. I'm thinking of combining this with a 3D printer to make a custom housing. Some privacy enthusiasts will love this. Cool project.


Is this really any more private than some phones that are available for purchase?


Not much.

It uses GSM, which can be listened to by a RTL-SDR or any other software defined radio.

http://www.rtl-sdr.com/receiving-decoding-decrypting-gsm-sig...


Not at all - it uses closed-source/closed-hardware baseband module, so no one really knows what is happening inside. This project is more of custom board, keyboard, display, OS, UX around readily available solution.

No successful or legal opensource/openhardware solutions exist right now :/ This was one of main problems with OpenMoko opensource phone.


Questions that come to mind:

* how long does the battery last compared to other types of phones?

* can you tether a laptop to it for data access?


Just want to say:

Please don't breathe solder fumes.

That picture of everyone hunched over their PCB boards while soldering makes me cringe.

Use some form of protection via a fume extractor or face mask and when possible solder in a well-ventilated area.

I've met people who've completely destroyed their lungs and ended up with nasty lung cancer after years of day-to-day solder fume exposure.


There's a useful device which is a muffin fan in a shroud, with a charcoal filter on the back. Put this next to your soldering station and it sucks up the fumes.

Lead-free solder is the way to go now. I know, it's a pain because of the higher melting point, but it's the future. Also, you can get the kind with a little silver in it to bring the melting point down. Unless you're running a large production shop, the slightly higher cost won't matter. The student electronics labs at Stanford now have a No Pb sign - no leaded solder allowed.


I'd be more worried about the smoke from rosin based flux than the presence of lead. Not that either one is some kind of health benefit...


Or hold your breath while soldering, you'll eventually need to, so you can tune your pulse.


It's just like snorkeling. You gotta blow the smoke away before you can take another breath.


Um.. is it really necessary to make every letter a capital one?


Edit link expired. HN wont let me do that.


Hopefully, moderator dang will edit the title for you.


DONE


Yeah, can't be a very good phone if you have to scream to be heard!


WHY ARE WE SHOUTING?


BECAUSE THIS IS GREAT.


(2013)


OH MY GOD I LOVE OPEN HARDWARE AND LOCK CAPS




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: