Hacker News new | past | comments | ask | show | jobs | submit login
I made a cell phone [video] (youtube.com)
487 points by luu on Aug 16, 2015 | hide | past | favorite | 79 comments



I gave this talk. Slides are here: https://keminglabs.com/talks/#bangbangcon2015

I'll post some photos of the current version and more details on my twitter (@lynaghk) tomorrow (in 10 hours).

Software is all on an 8-bit Atmel microcontroller, written in C in the style of Harel Statecharts (http://www.inf.ed.ac.uk/teaching/courses/seoc/2005_2006/reso...).


Enjoyed your talk YOW! talk which elaborated on statecharts https://www.youtube.com/watch?v=S2-EYSeWaPg I was aware of them before, but you did a good job of providing the motivation and tying it back with functional concepts. Very Interesting!


Photos of two current phone designs and PCBs are here: https://twitter.com/lynaghk/status/632937349458956288


This is fantastic, good job! Any chance on making the source and design files available, maybe even through a libre license?


Awesome! Now you need to make that wireless charger out of concrete to match the aesthetic. :)


Super cool, any chance of some pictures or a video of the finished product?


Really enjoyed your talk, was very amusing, but very inspirational too!


What was that 3D/CAD software you were using?


It looked like Autodesk Inventor. It is a parametric CAD software like Creo or Solidworks. The parametric part is actually really neat.

The lines are drawn and then certain constraints must be applied: These points must be coincident, these lines must be parallel, these must be perpendicular and several others. Dimensional constraints are then applied. The program informs the designer when the drawing is "fully constrained" meaning that the parametric solver can only find a single solution for the given set of constraints.

For example to center a hole inside a brick: Guide lines are drawn to be along the center. At there intersection a point is constrained. The hole is then extruded (or made using the hole tool) at this point.

This allows for making programmable drawings. For example one drawing can generate several pieces of documentation for different parts, but with different dimensions, thread types and so on.


> This allows for making programmable drawings

In the extreme end of this we have OpenSCAD[1] in which models are defined purely by code.

[1] http://www.openscad.org/


The problem of providing a graphic interface for defining constraints is a serious issue. Current versions of AutoCAD have a toy constraint system (only works in 2D) but the interface is extremely nonintuitive.


Awesome thank you!


I don't know which he used but take a look at AutoDesk Fusion 360. It's free for hobbyists and startups, I believe. It's basically a single piece of software to do everything and hooks up really nicely to 3D printers, CNC machines, etc...


Very nice! :-)

Could you list the name of the various CAD packages you used? (For the PCB layout and modelling the box)?


I used Autodesk Inventor w/ HSMWorks for the physical enclosure (both packages have 30 day free trials).

For the PCB, I tried using Eagle (very tedious / confusing) and KiCAD (couldn't figure out how to install on OS X without compiling from source) and ended up using Altium Designer via a friend's dad, who is an electrical engineer. Unlike Inventor / SolidWorks, Altium was very tedious and confusing and I was stuck until I bought an excellent video course on the topic: http://www.fedevel.com/academy/


Hey, great talk and thanks for the link to the paper.


This is crazy cool. Thanks for the talk


I wish the audience's audio wasn't much MUCH louder than the speaker. I had to turn the audio up to hear him, but the laughing was so loud I had to turn it down every few seconds.

Also a fun video to watch, but he kind of skips over some of the most interesting technical details (like writing the software).


Hi! I shot the video. We had some problems with the mic hookup on stage so I was using a mic all the way back at the camera that wasn't nearly as directional as I hoped. Apologies to everyone's eardrums !


Your effort is much appreciated, the talk was worth it. Thank you!


You could have also run a noise filter over it I believe, the quality wasn't good even when the crowd was quit.


Well, you have the video now, you can download it and run said noise filter over it yourself..


Agreed, my neighbors probably hate me right now from the audio.

On a serious note, though, I hope a write up with more details pops up.


This was bad enough that I bothered to figure out how to fix it.

VLC -> Media -> Open Network Stream, paste in the youtube URL.

VLC -> Tools -> Effects and Filters -> Audio Effects -> Compressor.

Enable the compressor. Here's where I moved the sliders: http://i.imgur.com/fGlPM5R.png

I basically followed the advice given here: http://lifehacker.com/5920290/how-to-fix-movies-that-are-rea...

The last 10 seconds of the video is the best way to verify it is working. Without compression, the clapping is ear-drum-splitting-loud compared to the speakers voice.


Thank you, that made this super-interesting video actually watchable.

Also, I learned VLC will just happily play a YouTube video right from the page's URL.


Yeah, that trick is also useful for older machines which are otherwise too slow to play stutter-free youtube video in a web browser. The VLC implementation appears to be significantly more CPU efficient.


Probably pulls the h264 version instead of VP8/9.


That's probably not why. h264 would indeed use less cpu time than vp8 if there was hardware acceleration from the graphics driver available and being used for h264 but not vp8 (which is plausible). But software decoding can be pretty efficient in dedicated video players, and browsers and flash can be pretty damn slow at just getting decoded frames to display.

Back in 2010 I was using a computer I built in 2004, which had a single-core athlon64 3200. Watching standard definition video in Hulu was a blocky slideshow, totally unusable. But I could watch 720p h264 video at a decent bitrate, with mplayer, with no hardware acceleration.

One of the bigger differences is that browsers/flash have to put the video output as a surface that they composite with the controls on top and the rest of the page behind. Old-style video players actually render to a different hardware "overlay" plane and don't mix anything with it in software, and it makes a huge difference.

(My mplayer example is from linux, but I've also used MPC on windows a lot. You can change the renderer in the settings, and "overlay" doesn't support showing subtitles, but has noticeably faster/smoother performance. Well, back on windows XP.)


You think VLC pulls the VP8/9 version instead of the h264 version? I seriously doubt it. Why would it? It would make no sense. Most devices have h264 hardware decoders. Most don't have VP8/9 decoders (though they exist).

I also have no doubts that an Athlon64 could decode 720p h264 completely in software. You'd be pegging that single core pretty high, but it could do it.


My point was that the hardware acceleration, and vp8 vs h264, doesn't really matter. The computation power of processors sold in 2010, even those in not-very-thick laptops, was probably double my Athlon64. The difference is everything else, the UI stuff (and maybe also flash and browsers being less efficient at decoding than ffmpeg).


Well, on a single core you are going to hit issues with multiple processes running. If you have the browser, flash, network, and decoding all happening on a single core, it wouldn't be surprising to see stuttering. Obviously, offloading the decode to a different processor would help out, but so would running just a single process.


Well, you'd use 30% less bandwidth (and therefore start / seek faster).

In addition, decoding VP9 in software is actually faster than H.264 with ffmpeg, the decoding library that VLC uses.


Are you sure overlay doesn't support subtitles? IIRC, they had a special color value that the graphics card replaced with the decoded video, and they just didn't use that color wherever they wanted to display subtitles. This is just from memory and from what I deduced, so take it with a grain of salt.


I was gonna say there's a Chrome extension (H264ify) that allows that, but then again I doubt the machine would even be capable of running chrome.


Looks like VLC uses http://ffmpeg.org/ffmpeg-filters.html#compand. If someone wanted to have a permanent fixed version.


Nice to know that VLC takes youtube urls. The compressor didn't improve the sound for me though.


wow, that's amazing. thank you.


The worst part was that the jokes weren't even funny. It sounded more forced than a '90s sitcom laugh track.

"As you can see, I got a G-" <HAHAHAHAH>, "that's like ... a good grade" <HAHAHAHAHAHAH>, "of course, an E is for excellent" <BAHAHAHAHAHAHAH!!!! ::standing ovation::>

... why am I so cynical? ;_;

Agreed though, the actual concept was really cool! Maybe to the author, try subtitling the video given the bad audio? Then we could just watch the video muted, and the (minor) problem would be solved :)

(and feel free to downvote this, I know I sound like a monster, complaining about laughter >_>;)


I am not the one to complain often. But I really was very irritated, by the hysterical laughs, at regular frequency.


I thought cell phone companies don't appear from nowhere because governments and/or organizations like FCC in the USA are not allowing just anyone to sell radio communication equipment (is that why cellular modems are never open sourced, right?)

Is it because of the regulations that we don't see lots of cell phone manufacturers? If it wasn't for that, from this presentation I get the feeling that cellphones could be made to spec quite easily, say, by your regular hardware Kickstarter campaign: at least, the cellular modem shown in the presentation looks really self-contained.


I work for a wireless design services company. There is a large divide between using a Cellular module (e.g. Telit LE910) versus doing a chip-down Cellular design (e.g. Qualcomm/Infineon). This design has a module at its core.

Modules are based around the chipsets but they do the most expensive certification (both FCC and Carrier) work for you. As a purchaser of the module, you pay for this on each module.

Certifying a cellular end device is usually <$50K (depending on number of bands, # of carriers, fallback, etc.). Certifying a new chip-down cellular design can easily exceed $1-2M in just certification and testing costs. Development costs and complexity will also be increased.


> Certifying a cellular end device is usually <$50K

Suppose the author wants to (completely legally) use the phone he just built.

Does he have to go through this "end device" certification? Or does "end device" mean something else here?

what if he wanted to sell the phone?

I was wondering what the regulatory landscape looks like during the last portion of the talk -- it'd be a real shame if he put all this time into designing a beautiful phone and couldn't (legally) use it!


Sparkfun has a reasonable run down of FCC rules.

https://www.sparkfun.com/tutorials/398

In this guys case there is an FCC allowance that you can build up to five devices for personal use that this cellphone project might fall under. Building a bunch to sell is a different matter though, especially since this is an intentional radiator vs. a unintentional one.

I get the sense that it's a bit of a taboo topic to talk about publicly in the opensource / hobbyist world. Adafruit and Sparkfun, the two major outlets for hobby electronics in the USA, for example generally won't discuss publicly what the companies stance on their FCC rules compliance obligation is.

My feeling based on reading a bit about it is that until you reach a certain scale the cost of FCC testing is prohibitive. So when companies like Sparkfun and Adafruit were starting out they simply followed best design practices and fudged a little on the FCC side of things by saying that their products fell under one of the exceptions or that they use a pre-certified module. Now that they are bigger it seems a small number of their products actually do get certified. It's a mess for sure.


The FCC requires that RF transmitters behave cooperatively - using the correct parts of the spectrum, not producing interference on other parts. Verifying this behavior is a relatively sophisticated task of electrical engineering, requiring specialized knowledge, expensive calibrated measurement equipment, RF-isolated test facilities, etc. Naturally, the cost burden for this testing falls on the manufacturer, not the taxpayer. So... we do allow "just anyone" to sell radio equipment, as long as they can pay to prove it behaves within the limits of the law. But big players like Motorola are in a much better position to do this than a dude in his basement.

Carriers have paid big bucks for exclusive licenses to useful swaths of the spectrum, and in return they get enforcement to make sure only devices they control can transmit on their spectrum. The FCC would not license a radio capable of transmitting on Verizon spectrum not approved by Verizon.

But this is specific to the radio - the FCC doesn't care about the rest of the phone (or whatever device it is). You can buy a cellular radio chip for your Arduino because it is FCC certified and you can only provide inputs like SMS and audio, not an arbitrary signal to transmit.


From memory your phone OS just talks to the baseband through AT commands, they're separate.


He mentioned that he bought that cnc machine like it was no big deal. I looked them[1] up, the cheapest one was 6 grand!!

Does there exist a sub 500$ cnc router that you can actually build interesting stuff with and interface with a computer?

[1]http://www.shopbottools.com/mProducts/basicPRSsystems.htm


There are some cheap CNC routers. They often require a bit of setup (i.e. sold as kits) or have questionable quality (3020). I'm not sure you'll find a high quality solution under $500 though.

Shapeoko 3[1] is $1000 USD

X-Carve[2] kits are $800 (upgrade to the Shapeoko2)

3020 Clones[3] are around $500-800 (all over ebay)

[1]http://www.shapeoko.com

[2]https://www.inventables.com/technologies/x-carve

[3]http://www.aliexpress.com/wholesale?SearchText=3020+cnc+rout...


And the ones that cost $6,000 aren't that good (although definitely good enough for hobbyists). Most of the milling machines have a really limiting range at that price point. You can only really mill out flat objects.

Take a look at the X-Carve [0] for a cheaper alternative.

There's also the Othermill [1].

[0]: https://www.inventables.com/technologies/x-carve [1]: https://othermachine.co/othermill/features/


I bought a ShopBot Desktop with a spindle, and it cost about $8,000. I decided that I wanted to focus on my phone project, rather than on trying to get a cheaper/homemade machine to work properly. (It's the same reason I bought an Apple laptop.)

If your budget is limited but you still want to get a sense of designing/making physical objects, buy a lot of Renshape foam, x-acto knife, and laser print designs to trace/cut.

Once you do that for a few hundred hours on your designs, shoot me an email and I'll be happy to mill them out for you = )


On the speaker page for the conference this took place at, it says that Kevin is a hobbyist industrial designer. Likely a good purchase for him!


There exist plenty of "Desktop" CNC Routers -- these are generally cheaper but have a smaller workable space than what comes to mind when you think of a classic CNC Router.


That guy is smarter than me, funnier than me, and most importantly works harder than me.... but I have an iPhone.


I'm not sure what you're trying to say with the iPhone part?


I guess that the iPhone does more things than the phone the guy made.


This is so cool. This guy kept everybody laughing and listening while presenting how to make a cellphone :)



...and by Dave Mellis at the Media Lab: http://web.media.mit.edu/~mellis/cellphone/


Very nice! I've been following these tutorials in the hope of building my own cell phone sometime soon.

If you want a more step-by-step tutorial, Ben Heck's youtube channel is a very good source. He specifically has a DIY cellphone

Part 1: https://www.youtube.com/watch?v=_SlcVTfP4MA

Part 2: https://www.youtube.com/watch?v=DAbppnXpfHc


Are there any pictures of the finished product? I'm intrigued.


The audience reactions were like being at a wedding, anything you say is hilarious.


Feels like I'm watching some sitcom. Does anyone else feel the people are laughing too much?.. or probably the microphone is very near to the audience.


Yup, I do agree that some things were really funny, but it felt like the audience started laughing no matter what he said.


Yup, felt the same


Same of course. Elsewhere in this thread (9 hours before your posts):

> Hi! I shot the video. We had some problems with the mic hookup on stage so I was using a mic all the way back at the camera that wasn't nearly as directional as I hoped. Apologies to everyone's eardrums !

https://news.ycombinator.com/item?id=10068086


He (they?) are working on a new "luxury" phone it appears. More info here: https://keminglabs.com/phone


If folks are interested in this kind've thing, this is an interesting Arduino-based project: http://web.media.mit.edu/~mellis/cellphone/


Kevin - what a wonderfully inspiring and HILARIOUS talk. You're fantastic! I create products myself (but with nowhere near your level of technical talent) - you can see some here if you want: http://bit.ly/shedcreations). Loved your delivery, intelligence, wit and raw perseverance. All wonderful. Please connect with me on LinkedIn or Facebook and please also post up an image of your finished phone - it wasn't so clear to see the finished article on your video. "Showbiz: always leave them wanting something more!". Much love, Shed www.ShedSimove.com


Which conference is this?

I tried Googling "!!Con" and obviously the exclamation marks don't count as part of the search term. Apparently Google doesn't know what I mean by "exclamation mark exclamation mark con" either. There's also no link in their YouTube channel...


It's called BangBang Con


Very impressive, I notice he's using a chip for GSM/GPRS - UC15EA.

I'm wondering if anyone's used an SDR to make a cellphone, as I've seen GSM base stations implemented with SDR, but not cellphones before.


As a person who does not use a smart phone but feels that nobody puts thought into the dumb phones - this has crossed my mind many times. Very very interesting.


"Don't tell the FCC kthx!"


its the kind of project im going to play some day


Ok, you made a working cell phone. But are you sure you know how to do it? What if, next time, something goes wrong, do you have the proper diagnostic skills to figure out the problem?


That's discouraging.

He pretty much admits during the whole talk that he doesn't really know what he's doing. But he's doing it nevertheless. He's learning. And he's encouraging others to try and do stuff they don't know much about. And to celebrate small victories.

Also, I never ever have proper diagnostic skills to figure out the problem when I'm doing something I've never done before.


I didn't want to be discouraging. I was just phrasing what I would think if I just did something like he did.


Yeah, but the point of the talk is the opposite. It's more of a motivational talk than a tech talk. It was pretty good, the runtime (<15 min) and his attitude helped. He was OK with not really being sure of himself or what he's doing, and still he did it.

I'd bet the phone he made isn't going to be the last phone he makes. He'll make more. He'll learn more. Maybe he'll talk more, or write something up and then we all will know more.

Hell, after watching the video I was like "I gotta make me one of those. But with Slackware!!!" :)

Don't feel bad about a few downvotes. I just think you missed the point. (Also, I didn't downvote).


>What if, next time, something goes wrong, do you have the proper diagnostic skills to figure out the problem?

Well, he's probably nearly 4% expert by now. Presumably it depends on if the problem occurs with something within that 4% or not... ;)

Two large bits of chippery, both of which will talk (relatively) directly to a PC if needed. If it's a software problem, he'll probably be ok.

If it's an RF problem, maybe not. From what I hear, that's a nightmare.


Indeed, it's important to note that the answer to everything software engineers do is something like this.

"If it's a bug in my application I can probably fix it. If the origin of the bug is the OS kernel I might need some time. If something's wrong with hardware I'm probably screwed." Which is to say that, in some sense, the answer to the grandparent's question for a simple HTML page is quite obviously no, even for the most experienced web developer.

Except of course that this guy is probably less screwed than the typical software engineer because he (at least physically) connected the hardware components.




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

Search: