-
Hi
I plan to control my tv support using WiFi, and was hoping to make it work on a WeMos D1 Mini Pro ESP8266 board.
Tests were initially done using the original Espruino board, which was capable of receiving & transmitting IR codes from & to the tv support.
The wip esp8266 code used for transmitting is available at the following URL:
https://github.com/stephaneAG/Espruino_tests/blob/master/tvSupportRemote/WemosD1MiniPro_tvSupportRemote.jsNow, after digging stuff ( and while I'm still digging .. ), it seems IR transmitting is not as quick as I hoped on the ESP8266 (my code currently uses 'analogWrite()' & 'digitalPulse', as in the official IR receive & send tutorials ) ..
Currently not at home ( :( .. ), I can't quite improve/test stuff out, but I'm posting here anyway, hoping it may help others in finding a way to bypass the involved limitations :)
Regarding this, the following post(s) may be of interest:
http://forum.espruino.com/conversations/291741/#comment13494747This being said, wishing yall a very nice day :)
( I'll come back as soon as I can try stuff out ;p )+
-
Hi there
I received 3 Wemos D1 Mini Pro few days ago, and flashed one of those using the infos displayed on the esp8266 page ( .. )
If I recall correctly, adjustements have to be made to the cli command to flash it to be able to use more than 4M ( and maybe not all flash memory 'd be available - I mean, some of it 'd be only usable with 'pages' stuff ? .. )Nb: some time ago, I tried upgrading some esp8266 ESP-01 with a 16M flash chip, but I didn't took the time ( and have it ) to investigate how to benefit from most of the flash without considering the 'pages' stuff ( when flashing it / afterwards .. )
Nb2: I'll be posting about an esp8266-related project in few minutes ;)
Hoping you did figure out stuff already ;)
-
-
Thanks for the inputs :)
I'll order some of the stuff I'm missing to test a build tomorrow, but in the meanwhile I did my best to translate the original code to js
https://github.com/stephaneAG/Espruino_tests/blob/master/SlowDanceTimeFrame/SlowDanceTimeFrame_Espruino_wip.jsConcerning the strobe light & the electromagnet, since the original code doesn't use any waveform, I bet I can rely only on using the following, although I'm not sure how I'd use - if necessary - the 'magDuty' & 'ledDuty' vars ( 'magTime' & 'ledTime' shouldn't be needed since the freq is set thanks to analogWrite's 3rd param )
analogWrite(magPin, 1, {freq:magFrequency}); // L98 analogWrite(lightPin, 1, {freq:ledFrequency}); // L100
Concerning the "water trick", I'm sure I didn't explain it well, so here it is:
https://www.youtube.com/watch?v=mODqQvlrgIQ
and also https://www.youtube.com/watch?v=uENITui5_jU
My goal 'd be to replace the camera by strobing lights ( keeping the effect we see through the camera thanks to the strobes )I'll post updates as they come ;)
+ -
Hi there :)
I was asked to recreate the idea demonstrated in these awesome setups:
[](http://www.instructables.com/file/FGTAMVAIY3CX2AL/)https://www.kickstarter.com/projects/xercyn/slow-dance-a-frame-that-slows-down-time
http://www.instructables.com/id/Slow-Dance-a-Fusion-of-Art-and-Magic/?ALLSTEPS
http://www.instructables.com/id/TimeFrame-a-Time-Portal-to-Put-on-Your-Desk/?ALLSTEPS-> of course, Kudos to the respective original author ;)
Now, after a quick read of the schematic involved:
https://raw.githubusercontent.com/cubic-print/timeframe/master/electronics/PCB_schematic_V3.JPG
I could start a new version :)
https://circuits.io/circuits/4045924-slow-dance-time-frameNow, all that is good, but looking at the code ( whatever the version .. https://github.com/cubic-print/timeframe/tree/master/software) , it seems to be using some register's mambo-jambo tricks specific to the AT328P for precise timing purposes ( .. )
I was wondering if I could achieve driving LED stripes in a "stroby manner" while simultaneously driving correctly the electromagnet using only js ( actual DACs or using PWM .. ) or if I had to look into writing a quick module that'd allow me to do so :)
Long story short, the objects getting vibrations from the electromagnet have to oscillate at 80Hz while the LED stripes have to strobe at 79.5Hz to get a "beat freq" of 0.5hz, perceived by our eyes as a very slow motion ( etc .. ;p )
For the fun of it, if anyone has hints/advices on the above, remember the "water + subwoofer + camera ( filming at 24 fps ) + audio waveform" trick ?
By modulating the waveform from 23Hz to 25Hz, the water appeared to go backward or forward and also gives a really nice effect ..
.. so another question may be how to replace the camera fps' by strobe lights while having those oscillating at a freq enough for our eyes to perceive the motion ? ..Looking forward to reading some answer on this,
Happy coding !+ -
Hi there
For anon-going project, I need to know if some device(s) are within the range of a Puck, and, if within it, how close the device(s) is/are to the Puck.
From what I could read in the ref, I see we can only "NRF.setRSSIHandler()" on the currently active connection, while we have an "rssi" prop in the "BluetoothDevice" objects returned by "NRF.findDevices()".
For a single device, I presume that using "NRF.connect()" and then setting an interval to handle the RSSI 'd do the trick, but I was wondering what was the best way to achieve the same behavior for multiple devices: in other words, some sort of "NRF.findDevices()" discarding anything that not in our interest ( ex: devices whose names & stuff are not present in an array ) ?
Anyway, I'll give both a try as soon as I can (..)
-> any hints welcome ;)+
-
haha, glad to see it may be useful to others :)
@Gordon From what I can remember, the last time I checked, Fritzing was moving from two ways to prepare the board's svgs ? ( namings & stuff ), but I'm no expert on that :¬ / ..
When I got time to, I'll add the pin labels ( as svg elements IDs ) to the .svg following the same convention used on the original Espruino & Pico drawings ( so as to be able to "animated" those +/- like the quick demo on the "EspruinoMimetism" repo .. )
Also, did any of you see this one ? seems Nordic's got plenty of customers ;p
http://www.arduino.org/products/boards/arduino-primo-core@Gordon btw, if not said already, I received all my Puck's & didn't have time to have fun with yet, but the sooner I got to these, the betteeeeeer => nice works on those ;)
+
-
Hi there :)
A quick Illustration for our beloved PuckJS :D
Nb: the .ai & generated .svg has NOT yet the pins labelled ( & thus not usable "interactively" quickly by now ( .. ) )
https://github.com/stephaneAG/Espruino_tests/blob/master/EspruinoMimetism
Enjoy :)
-
Hi there
sorry for the delay ( work :/ .. )answer from Greg Wang - Espressif Systems Customers service
Hi,
Yes, you can use flash more than 32Mbit. But the firmware is up to 32Mbit, no more. You can read and write the rest area as norma data storage.
Currently we can support to 128Mbit max this way.( confirmation of / additional info on answer by Pete Scargill - as @user67316 - who were kind enough to share it on page 6 of this topic )
But only 1 meg for programs and possibly another meg for the OTA copy - the rest of the space could only be used for data - using for example the file system in the Arduino environment...
During my latest tests, I had troubles flashing a NodeMCU ( ESP-12 ) board with the "latest" releases of both esptool.py & Espruino, even using dio & slower bauds didn't seems to do the trick :|
-> I'll check again using the latest build provided here & post the results ( for: ESP-01, ESP-01 32M ( flash upgr. ), ESP-01 128M ( flash upgr. ), ESP-12 ( NodeMCU ) )On the crypto vs graphics topic, I'd say both are relevant ( though I'd 1st have fun with graphics than the other .. even after watching some Bruce Schneier talk ;p ) - so, additional param when building ?
@JumJum actually don't know if this 'd help, but try using '%zu' or casting as '(unsigned long)theUint32tVar' ?
-
thanks for the confirmation ;)
I am [ still ] digging the nordic doc .. I hope I'll get that cli option ;p
Aside from that, seeing the following appear on the forum ( http://forum.espruino.com/conversations/292530/#comment13202218 ), I was wondering about the 2 following use cases:
- when a paired phone & the watch are away from each other ( far than a set/adjustable threshold ), vibrate/ring the watch & display a message ( "notification" ? ) on it ( we could also do so on the phone as well - & also ring it - depending on what can be done on its side .. ) *
- push notifications from a paired laptop to be displayed on the screen until the user presses the button ( to get back to "normal watch" mode )
*although it 'd be far fetched ( or is it not ? ), I'd love to be able to locate a paired phone using a tiny arrow cursor on the watch ^^
- when a paired phone & the watch are away from each other ( far than a set/adjustable threshold ), vibrate/ring the watch & display a message ( "notification" ? ) on it ( we could also do so on the phone as well - & also ring it - depending on what can be done on its side .. ) *
-
Hi there
I just received my nRF52 DK ( !!! :D ), so
I guess time has come to test this outbefore messing things up I got few questions before diggin deeper in the docs ;)- from what I understand, the n52DK 'll auto-detect an external target when we use the SWD connections as pictured, so d&d-ping the .hex on the 'JLINK drive' that appear in the Finder/Explorer/Whatever should upload the code as expected, then allowing connections over ble, right ?
- does anyone know a quick & easy way to get a firmware dump using the n52DK (to have that watch firmware .. as well as others ;p ) ? the following links seems to be quite interesting in that regards .. http://blog.includesecurity.com/2015/11/NordicSemi-ARM-SoC-Firmware-dumping-technique.html, http://www.lemilica.com/hacking-smart-bracelet-wristband/
Also, the following articles seemed somehow related:
http://hackaday.com/2016/09/14/hacking-a-dollar-store-bluetooth-device/, http://troydenton.ca/?p=168So as from now ... nRF51822 / CC2541 / DA14580 / RDA5871 at least ? :)
The attached pic is from a friend's watch ( also a cheap one ) - didn't digg that yet ;)
- from what I understand, the n52DK 'll auto-detect an external target when we use the SWD connections as pictured, so d&d-ping the .hex on the 'JLINK drive' that appear in the Finder/Explorer/Whatever should upload the code as expected, then allowing connections over ble, right ?
-
hi there
for the link to the smartwatch I received recently: http://www.ebay.fr/itm/281909052367?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
-> enjoy ;)
-
-
hi there !
I received the following few hours ago, so I'm joining the fun ;p
Is the following all that's needed to program it using Espruino ?
STM32F3 -
back :)
from what I could read in the esptool repo:
- flash_mode: when using "dio" instead of "qio", GPIO 9& 10 are freed & available for other purposes
- flash_size: the value of my flash chip is not in the 2m..32m range, so not a valid value [ yet* ]
- flash_freq: clock freq for SPI interaction, 20..80MHz - not related to esp cpu freq ^^
*I'll digg esptool.py, but the lines 46..56 ( "add_spi_flash_subparsers" ) & 825..852 ( "write_flash" ) seems of interest, as well as the following links: https://github.com/themadinventor/esptool/issues/105 , from a coment in previous link's page - spi_flash.h
lastly, from the esp8266 datasheet:
- flash_mode: when using "dio" instead of "qio", GPIO 9& 10 are freed & available for other purposes
-
I hope so .. ( I'll know soon enough ;p )
Also, what's the underneath logic for the "0x[YY]C[YYY] 0x[YY]E[YYY] rule" ?
I noticed the ..C.. & ..E.. endings, but didn't saw that in the datasheet ? ( I may be blind sometimes .. )
Additionally, is the "_freq" param's value changing ? ( or is it somehow related to the ".setCPUFreq(80)" call for the esp chip :| ? )I'l try your suggestion as soon as I get up after some rest ;)
-> yes, from what I could read, it should be happy with whatever until saving up .. I'll see that :)Thanks for the quick answer
ps: not yet ready but it may be useful - sorry for messing with the branch troubles ;p
ESP8266_FlashUpgrade -
Hi there !
I just upgraded the flash chip on an ESP-01 ( yup ... ) to a W25Q128FV without too much hurdles, but I'm not confident in the settings to be passed to esptool.py during the flashing procedure ..
what'd be needed to pull that off with the latest build ?
my wild [ and uncomplete/errored ] guess:
/path/to/esptool/esptool.py --port /dev/ttyUSB0 --baud 115200 \ write_flash --flash_freq 80m* --flash_mode qio* --flash_size 128m* \ 0x0000 "boot_v1.4(b1).bin" 0x1000 espruino_esp8266_user1.bin \ 0xFFFF00* esp_init_data_default.bin 0xFFFF00* blank.bin
*I'm really not sure about these, although the datasheet specifies a SPI clock rate ip to 104MHz, "dio" up to 208MHz & "qio" ( "and qpi instructions" ) up to 416MHz ..
.. and I'm pretty sure the memory addresses I'm looking for are not 0xFFFF00 ( 0xFFFE00 ? )
-> this being said, any good hint on how to be sure to read those pages-heavy datasheets diagrams correctly is very much appreciated ;) -
-
back ! :D
All right, I now have a working audio bar graph ( but it seems the chars I'm writing are no more "blocks of different height" afer a reset ? -> I gotta digg the stuff to write from the char map, but it seems weird some chars work and some don't ( or have a different charcode: ex: 0100 or 00000100 gives me an @, but it seems not consistant ? I surely use it the wrong way .. ) )
The char map/set I'm talking about is from the datasheet, "Table 4"
https://www.sparkfun.com/datasheets/LCD/HD44780.pdfpics of bar graph before ( "blocks of different height") added
Anyway, the "blocks" are gotten usinglcd.write(0..7)
( increase the num for taller block )
( 'd be nice to know if we can have those flipped up without using special chars - to represent some audio stuff ;p )+
-
back :)
-> actually, I was getting more than a flickering ( I couldn't even see the text being displayed before calling
lcd.clear()
-> so, very fast flickering ? ^^ )-> for the advised solution, I bet it'd work ( I was digging the HD44780 module js), but here's the thing: noticing the logs about B2 not able to PWM output, I changed it to B7 .. and ~now I can't connect back over USB~ ( even if I didn't 'save()' ) ..
UPDATE ==> BACK IN BUISNESS :D
-> I guess I'll have to unwire nearly all the pins connected to the lcd, since I can't get the conn. back with just a few ( or just the incriminated pin .. ) & test after that ..
.. this being said, thanks for the hint ( I'm pretty sure that's also what I ended up doing with some Arduino code a while ago, keeping string buffers for each lines of the lcd screen ( one being displayed, and one that may be longer than 16 chars to be used as source for the stuff to be displayed ( .. ) ) )
-
-> haha, 'glad to hear that ;)
-> you mean RS, EN, D4..D9 || D0..D9 ? ( I have the RW Gnd-ed fine currently - nb: never used the 'read' mode yet .. )
=> big thanks for the "guy": I'll try picking one/some up & try out having more pins left & greater speed than with the 4 wires configuration:DAlso, I have some ( ugly :/ .. ) code that auto fades the backlight RGB between few colors ( 'd need improvements to be maybe a 'grb color fade' module ? ( .. ) ) available here:
https://github.com/stephaneAG/Espruino_tests/blob/master/characterLcdRgbBacklightAndMike/characterLcdRgbBacklightAndMike.jsLittle question, though: using eith 8 wires or I2C is mandatory to have quicker response between lcd.clear() & the next lcd.print call ? ( I wanted to display bar graph of 16 chars max on the lcd depending on the analog value from the mike ( to be "mapped" from one "-" to 16 of them ) as a quick try ;) )
the test code for the above quick try:
// lcd update/ clear var lcdUpdateCntr = 0; // listen to mike & output bar graph var w = new Waveform(128,{doubleBuffer:true}); w.on("buffer", function(buf) { var l = buf.length; var v = E.variance(buf,E.sum(buf)/l)/l; console.log("------------------------------------------------------------".substr(0,v)); // map/adapt the result to the LCD width ( 16 chars ) var lcdOutput = "----------------".substr(0,v); //lcd.clear(); //lcd.print(lcdOutput); if ( lcdUpdateCntr < 1 ) { lcd.print(lcdOutput); lcdUpdateCntr++; } else if ( lcdUpdateCntr === 1 ) { lcdUpdateCntr++; } else if ( lcdUpdateCntr == 5 ) { lcdUpdateCntr = 0; lcd.clear(); } else { lcdUpdateCntr++; } console.log('lcd update counter: ' + lcdUpdateCntr ); console.log('variance: ' + v); }); w.startInput(mike,2000,{repeat:true});
ps: still didn't receive the pod breakout :/ ..
+
-
Hi there !
Just a quick update on this post:
Here's a project by Adam Kumpf I stumbled upon a while back now, which I think may be still quite of interest:
Even if it only work for "slow" baudrates, I was wondering if we could achieve that using only an Espruino board ( without any external component, aside from the electret mike ( with or without a breakout ) )
http://research.kumpf.cc/2015-ProgrammingWithHeadphones/
I also don't know if a DTMF tone(s) decoder is easily doable using the waveform class ..
Last but not least, being able to replace the jack plug with either a mike, a bluetooth audio receiver, a SIM breakout spk line or an intercom spk line 'd be quite cool ( ex: playing a waveform, either a pre-recorded one or directly from the WebAudioApi, to an intercomm's mike & getting the door opened, .. ) :)
so .. WaveformSerial module anyone ? ;)
-
^^
understood, I'll explain another way:IR receiver --> Espruino ( or tinier IC ? ) --> 30pin connector --> iDevice
The Espruino/uC in between "translates" the stuff from the IR remote to control the iDevice through the dock connector
Thx for the info on the LCD used ( that's what I guessed when looking at the beginning of your code ;p )
So, my turn:
For the 30pin dock connector breakout, I ordered one like this ( "PodBreakout Nano Style 1" ):
http://www.makertronic.com/podbreakout-ipod-iphone-ipad-breakout-nano-board
For the LCD screen I have, it's this one ( so I was planning to use http://www.espruino.com/HD44780, same as you ;p ):
https://www.adafruit.com/products/398 -
Hi
reading the above, I see I'm not the only one with such troubles ( .. )
I just ordered 2 Espruino WiFi to support the Espruino project, meanwhile I still wanna figure out a way to make this work on the ESP8266 platforms ( see my latest post: http://forum.espruino.com/conversations/303540/ )