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:
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.
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.
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'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.
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.
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.
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.
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.
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 ?
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.
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.
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.
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.
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.
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.
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.
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.
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