4 ms·
ESP8266 Analog Broadcast Television Interface
- mkj 11y agoNice work. The author's non-euclidean ray tracing engine looks crazy and cool too. https://www.reddit.com/r/gamedev/comments/2jjug9/i_wrote_a_strange_realtime_raytracing/ https://www.reddit.com/r/gamedev/comments/2jjug9/i_wrote_a_s... (watch the video and imgur)
- SEJeff 11y agoIsn't this the same little chip they're doing a kickstarter for micropython on? https://www.kickstarter.com/projects/214379695/micropython-on-the-esp8266-beautifully-easy-iot https://www.kickstarter.com/projects/214379695/micropython-o... This is really impressive.
- okso 11y agoIt is the same chip. Should we suggest an extra milestone for the Kickstarter for `import 3Dtv` ?
- bliti 11y agoI see the value of having micropython but not of 3Dtv. Not taking anything away from 3Dtv. It should not be used as a reason to increase fundraising in an already complicated project. This is a comment on managing people's (backers) expectations and not on the organizers abilities or ethics.
- nivla 11y agoYes and you can also run Lua, Javascript, Arduino/C on it. However I thought there was already a micropython firmware for it [1]. What extra does this kickstarter bring in? [1] https://learn.adafruit.com/building-and-running-micropython-on-the-esp8266/overview https://learn.adafruit.com/building-and-running-micropython-...
- gh02t 11y agoI believe the purpose of the Kickstarter was to fund first-tier support for the ESP8266, whereas before it had been kind of a side project.
- SEJeff 11y agoA whole lot of testing and functionality. I've used micropython on a few of my esp boards, and while it works, it is exceedingly buggy. I write most of my apps for esp boards in the Arduino IDE in C, which is totally fine, but it is easier to prototype in Python, so I backed it.
- pjc50 11y agoNeat. Note that this technique will work on any system that has a high-speed I2S bus that can be operated by DMA, which these days is quite a lot of microcontrollers. See also Fabrice Bellard's DVB-T broadcast using XWindows: http://www.bellard.org/dvbt/ http://www.bellard.org/dvbt/ It's a kind of reverse "TEMPEST": rather than detecting a computer's accidentally radiated emissions, deliberately radiate emissions in a particular pattern to produce a radio signal.
- kaoD 11y ago> You may say "But nyquist says you can't transmit or receive frequencies at more than 1/2 the sample rate (40 MHz in this case). To a degree that is true. Some people thought it may be overtones, but what happens in reality something stranger happens. Everything you transmit is actually mirrored around 1/2 the sample rate (40 MHz). For anyone interested this is called aliasing. If you've ever noticed wheels going backwards in racing or train footage, this is exactly what's happening: the wheel's angular velocity is above half the sampling rate (i.e. the camera's FPS), producing a mirrored version which in turn appears to rotate backwards.
- mkesper 11y agoNote this is probably illegal in several countries, though.
- xt00 11y agoWould be cool to see an spectrum plot of the output signal.. the explanation of why the signal is picked up seems a bit too vague for me.. Since the transmitted signal will be a square wave I imagine, I would expect to see some side-bands that are pretty significant above and below the 80MHz.. And then the 61MHz signal that the TV would normally receive should be actually received using some local oscillator that I would guess is down around like 10MHz or something.. so would love to get a more detailed explanation on this stuff if anybody knows what actually is happening beyond "some people think its blah, but really its blah!! huzzah!" type of explanation..
- cnvogel 11y agoFirst, a 80MHz square wave does not have side bands that are significant below 80MHz, only above! And if it's configured for alternating 0/1 bits, a serial port at 80MBaud creates a square wave of exactly 40 MHz. Furthermore cnlohr doesn't use a fixed square-wave but a variable sequence of pulses. And a single pulse of (1/80Mhz)=12.5ns will have a sinc spectrum. sinc f=(sin f)/f. For an infinitely sharp-edged pulse, this sinc-spectrum basically extends to infinity, for real-world pulses you can expect to see a few harmonics. https://www.wolframalpha.com/input/?i=fourier+transform+box+function https://www.wolframalpha.com/input/?i=fourier+transform+box+... cnlohr basically uses the synchronous serial i2s interface, running at 80Mbits/s as a 1bit DAC with a zero-order hold (stretching out a constant voltage over the bit time), so this DAC will recreate anything between 0..40MHz correctly (within the capabilities of its pretty poor quantisation noise and within the first lobe of the sinc-spectrum). https://en.wikipedia.org/wiki/Zero-order_hold https://en.wikipedia.org/wiki/Zero-order_hold http://www.ee.ic.ac.uk/pcheung/teaching/ee2_signals/Lecture%2013%20-%20Sampling%20&%20discrete%20signals.pdf http://www.ee.ic.ac.uk/pcheung/teaching/ee2_signals/Lecture%... (last slide) But, any signal you recreate will, because it's made up of the single pulses with the sinc spectrum, not only have energy between 0...+Fs/2 but also between N-1/2 and N+1/2 times the sampling frequency. There's a obvious trick involving the fact that convolution in the time domain corresponds to multiplication in the frequency domain, but unfortunately I can't really recall it correctly now... so you have to just take my word for it ;) And that's why, if this "DAC" outputs 1MHz, you also get 79 and 81. http://www.analog.com/media/en/training-seminars/tutorials/MT-017.pdf http://www.analog.com/media/en/training-seminars/tutorials/M... (here's a nice graph) Conversely, when you try to output a sharp pulse on your soundcard, e.g. an audiofile consisting of {zeroes, one sample of 32000, zeroes...}, the output to your headphones will be something like a sinc pulse. The Fourier transform of this since pulse in the time domain will be a box function from 0..half the sample rate in the frequency domain, and hence no higher harmonics will be output.