karawin / ka-radio Goto Github PK
View Code? Open in Web Editor NEWA wifi webradio with only low cost boards ESP8266 and VS1053 by Jp Cocatrix
License: Other
A wifi webradio with only low cost boards ESP8266 and VS1053 by Jp Cocatrix
License: Other
Hello
I have problem after turning on karadio. ESP(Nodemcu) normal playing, but STM32F103(with LCD ST7735,encoder and IR) after receive signal from serial ESP, itself stop. Led diode on STM32 not blinking,but shines and lcd it stop.
Sometimes normal working and all is good. All wires is good.
thank you for answer
Hello, what benefits provide the use of an additional chip 23lcv1024,
and whether there is support for external control buttons?
Thank you with best regards Vladimir.
When I type sys.ram, should I see some info, if there is no ram chip available or it only shows something if there is external ram hooked up.
I Connected external ram 23LC1024.
23LC1024
23LCV1024
PDF 23LC1024
PDF 23LCV1024
23LC1024 has Vhold <== using this one.
23LCV1024 has VBAT
Note: If your chip has a /Vhold in place of /VBAT, the pin 7 must be wired to VCC (pin8) instead of pin 7 to GND for the V series..
1:CS = GPIO16
2:MISO = GPIO12
3:NC = VCC 3.3v
4:GND
5:MOSI = GPIO13
6:SCK = GPIO14
7:VCC 3.3v
8:VCC 3.3v
Double checked wiring still no love.
WebRadio with the VS1053 works so far only at lower bitrates, 24k streams from stream6.jungletrain.net:8024 is the first one I got working, with no stuttering. 64k stutters stream6.jungletrain.net:8064, 128k is worse stream6.jungletrain.net:8128 hopefully the ram helps?
Found another note in the datasheet:
Pin3 is not used in SPI mode and should not be left floating.
Still didn't help though.
This could be reproduced with web onclick="playStation()" , cli.play and hardware buttons
I believe play button while we are already listening sound should pause
Hello @karawin ,
When I startup my module, the autostart is not working, means that the radio station is not played.
I have to manually press "start" from the webpage. Volume is also not saved.
dhcp client start...
ip:192.168.1.30,mask:255.255.255.0,gw:192.168.1.1
autostart: playing:255, currentstation:0
I2S Speed: 0
After pressing "play":
##CLI.STOPPED# from playStationInt
##CLI.NAMESET#: 0 Alsterradio
##CLI.URLSET#: live96.alsterradio.de
##CLI.PATHSET#: /
##CLI.PORTSET#: 80
##CLI.OVOLSET#: 0
##CLI.VOL#: 144
Header: Moved
##CLI.STOPPED# from C_HEADER
##CLI.URLSET#: stream.alsterradio.de
##CLI.PATHSET#: /alsterradio/mp3-128/
##CLI.PORTSET#: 80
Header: Moved
##CLI.STOPPED# from C_HEADER
##CLI.URLSET#: 138.201.251.245
##CLI.PATHSET#: /alsterradio_128
##CLI.PORTSET#: 80
##CLI.ICY0#: alsterradio rock 'n pop
##CLI.ICY3#: http://www.alsterradio.de
##CLI.ICY4#: Rock Pop
##CLI.ICY5#: 128
##CLI.ICY6#: Playlist
##CLI.META#: TOTO - HOLD THE LINE
##CLI.PLAYING#
I'm trying to play password protected streams. Such url looks like: user:[email protected]. It looks like it's not supported right now.
Other thing is - what would be needed to play streams via https?
Hello,
I have a nodemcu v3 and VS1053, flash is ok, i think , I can open the webpage, I can select a radio and listen to it on the webpage but from the vs1053 I have no sound.
My output debug info is :
External ram not detected
uart speed: 115200
Release 1.6.2, Revision 3
SDK 1.4.2(f57d61a)
data : 0x3ffe8000 ~ 0x3ffe88fc, len: 2300
rodata: 0x3ffe8900 ~ 0x3ffea358, len: 6744
bss : 0x3ffea358 ~ 0x3fff1778, len: 29728
heap : 0x3fff1778 ~ 0x40000000, len: 59528
Heap size: 30616
size_map: 4
Eeprom_start: 3e0000
Eeprom_start1: 3d0000
Flash size: 4194304
t0 task: 3fff8a10
t1 task: 3fff8c98
t2 task: 3fff92b8
t3 task: 3fff96a8
t4 task: 3fff9cf0
Heap size: 23832
mode : sta(a0:20:a6:08:d7:e0)
add if0
SCI_Mode (0x4800) = 0x4802
SCI_Status (0x48) = 0x4C
VS Version (VS1053 is 4) = 4
SCI_ClockF = 0xB800
I2S Speed: 0
device: 3fffa788
plugin size 6350 3175
plugin start: 7 1 8050 6
plugin size 234 117
plugin start: 7 1 8f00 6
volume: 131
UART READY
AP1: WiFi-2.4-00F5, AP2:
AP1:Station Ip: 192.168.1.56
Trying WiFi-2.4-00F5 , I: 0 status: 1
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 4
pm open phy_2,type:2 0 0
cnt
connected with WiFi-2.4-00F5, channel 3
ip:192.168.1.56,mask:255.255.255.0,gw:192.168.1.1
sleep enable,type: 2
No panel
ADC Div: 0 from adc: 0
autostart: playing:1, currentstation:2
I2S Speed: 0
##CLI.STOPPED# from playStationInt
##CLI.NAMESET#: 2 RTL2
##CLI.URLSET#: streaming.radio.rtl.fr
##CLI.PATHSET#: /rtl2-1-44-128.m3u
##CLI.PORTSET#: 80
##CLI.OVOLSET#: 0
##CLI.VOL#: 131
##CLI.STOPPED# from C_PLIST1
##CLI.URLSET#: ais.rtl.fr
##CLI.PATHSET#: /rtl2-1-44-128
##CLI.PORTSET#: 80
##CLI.ICY0#: RTL2 [MP3 128]
##CLI.ICY3#: http://www.rtl2.fr
##CLI.ICY5#: 128
##CLI.ICY6#: RTL2 [MP3 128]
##CLI.PLAYING#
##CLI.META#:
Thank you for your help
i connect my nodeMCU 1.0 connected with VS1053 shown as in the instruction
after uploading the FW...
=> extraram state: 0 0xff ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
data : 0x3ffe8000 ~ 0x3ffe88d4, len: 2260
rodata: 0x3ffe88e0 ~ 0x3ffea9a8, len: 8392
bss : 0x3ffea9a8 ~ 0x3fff1850, len: 28328
heap : 0x3fff1850 ~ 0x40000000, len: 59312
Heap size: 31528
t0 task: 3fff8688
t1 task: 3fff8820
t4 task: 3fff8c48
t3 task: 3fff9268
t2 task: 3fff9f90
mode : sta(5c:cf:7f:89:2b:92)
add if0
then it stops. anyone know whats wrong??
Hi, I had my karadio working perfectly on v1.1.7. All i did was click on upgrade from web interface (didn't change or touch any other settings). Now I am running version 1.3.1 and everything looks like working but no sound is coming from VS1053 module.
Did something changed regarding hardware from v1.7.1 to v.1.3.1? I also have optional external RAM (23LCV1024) if that is relevant.
P.S. Thank you for all your great work regarding this project
after flashed the frimware, I get this from serial:
rl\0l湠|\0宭鄚�?l?b|巶�?抮抌?b岒nn瀕nn溾?b�p鞄$rlrlp餹?�?lbn鈢�??b岒nn頫0l寧l�?�nnl
���nr帓抧拻l�p騨?�r寽溾?bn鈢�鞄帋b岒nn頫0l
�?�nnl���nr帓抧�?lp騨?�r寽溾囔lbn鈢�寧�?b岒nn頫0l
�?�nnl���nr帓抧?l
��r拻n?l�rl寣n湆騨n瀸炩宺�nnn?l宐?l\0?抣?拻??巐ll~rl\0?抣lln溾\0?悓~抈�\0?抣寪n鄮�n鞉n~��寣ll鄝b鞂llpb?br倢靗
nl巔岇lbl
�l拻n�瀗寬鈔l瀨�b��ll�rl~r�?恇\0尀鈱bl宐r|lb溾?bp��鈘�鞄l\0祢n顎�nn?��ll噔�l鞄?l鞄l宭鞂岇l
�€�n黒0尀鈱bll巖?b��尀鈱bl宐?lrl屸�?俷鞉r傭n|?llll`�恟��n?炧?
=> extraram state: 0 0xff
Release 1.5, Revision 0
SDK 1.5.0-dev(1aafc07)
data : 0x3ffe8000 ~ 0x3ffe8928, len: 2344
rodata: 0x3ffe8930 ~ 0x3ffe8b2c, len: 508
bss : 0x3ffe8b30 ~ 0x3fff00c0, len: 30096
heap : 0x3fff00c0 ~ 0x40000000, len: 65344
Heap size: 37048
size_map: 4
t0 task: 3fff70f0
t1 task: 3fff7350
t4 task: 3fff7a60
t3 task: 3fff7e50
t2 task: 3fff83f8
t5 task: 3fff87e8
t6 task: 3fff8e30
Heap size: 27520
mode : sta(60:01:94:3b:57:21)
add if0
but there is no AP point called, ssid "WifiWebRadio". Did I flash the firmware probably? Thank you very much!
Hi,
First of all thank you for all your efforts.
I have no problems with mp3 playing and internet radios, everything works just perfect for me. But I would like to play wav files in Ka-Radio and I seem to have a problem with that.
What I'm trying is to enter the following wav file URL into the Instant Play section of the web interface:
http://www.wavsource.com/snds_2017-07-30_6786517629734627/movie_stars/bogart/dirty_mind.wav
The first time I play, it plays the file. But it doesn't play the file a second time and it doesn't play any other wav files anymore.
When I restarted the system, it again plays a single wav file and stop playing any more files.
The Serial Monitor output is here:
dhcp client start...
ip:192.168.43.199,mask:255.255.255.0,gw:192.168.43.1
sleep enable,type: 2
ADC Div: 3 from adc: 13
autostart: playing:0, currentstation:0
##CLI.STOPPED# from Adc Stop
##CLI.STOPPED# from Post instant_play
##CLI.URLSET#: www.wavsource.com
##CLI.PATHSET#: /snds_2017-07-30_6786517629734627/movie_stars/bogart/dirty_mind.wav
##CLI.PORTSET#: 80
##CLI.OVOLSET#: 0
##CLI.VOL#: 160
##CLI.PLAYING# (This one is playing correctly)
##CLI.STOPPED# from once
##CLI.STOPPED# from Post instant_play
##CLI.URLSET#: www.wavsource.com
##CLI.PATHSET#: /snds_2017-07-30_6786517629734627/movie_stars/bogart/dirty_mind.wav
##CLI.PORTSET#: 80
##CLI.OVOLSET#: 0
##CLI.VOL#: 160
##CLI.PLAYING# (This one is not playing correctly even though it's the same file)
##CLI.STOPPED# from once
##CLI.STOPPED# from Post instant_play
##CLI.URLSET#: www.wavsource.com
##CLI.PATHSET#: /snds_2017-07-30_6786517629734627/movie_stars/bogart/need_dough.wav
##CLI.PORTSET#: 80
##CLI.OVOLSET#: 0
##CLI.VOL#: 160
##CLI.PLAYING# (This one is not playing correctly and this is another file)
##CLI.STOPPED# from once
Can you please recommend a solution to me or show me a hint where I can hunt down this issue.
Thanks in Advance
Alp
Hi @karawin
When trying to load Karadiolcd16x2.ino, to my module ESP-12E, I am receiving the following message, which will not allow me to continue:
karadioNokia5110:41: error: 'unsigned int index' redeclared as different kind of symbol
unsigned index = 0;
^
In file included from c:\users\oz\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\stdlib.h:11:0,
from C:\Users\oZ\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/Arduino.h:27,
from C:\Users\oZ\AppData\Local\Temp\arduino_build_598767\sketch\karadioNokia5110.ino.cpp:1:
c:\users\oz\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\string.h:55:8: error: previous declaration of 'char* index(const char*, int)'
char *_EXFUN(index,(const char *, int));
^
D:\ARDUINO\NODEMCU\mp3 sketch\KaRadio\Firmware\Ka-Radio-master\Lcd & remote\karadioNokia5110\karadioNokia5110.ino: In function 'void loop()':
karadioNokia5110:317: error: invalid types 'char [200][char*(const char*, int)]' for array subscript
line[index] = 0; // end of string
^
karadioNokia5110:318: error: assignment of function 'char* index(const char*, int)'
index = 0;
^
karadioNokia5110:318: error: cannot convert 'int' to 'char*(const char*, int)' in assignment
karadioNokia5110:35: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
#define BUFLEN 200
^
D:\ARDUINO\NODEMCU\mp3 sketch\KaRadio\Firmware\Ka-Radio-master\Lcd & remote\karadioNokia5110\karadioNokia5110.ino:322:23: note: in expansion of macro 'BUFLEN'
if (index>BUFLEN) break; // small memory so small buffer
^
karadioNokia5110:323: error: ISO C++ forbids incrementing a pointer of type 'char* (*)(const char*, int)' [-fpermissive]
line[index++] = temp;
^
karadioNokia5110:323: error: lvalue required as increment operand
Usando librería EEPROM con versión 1.0 en la carpeta: C:\Users\oZ\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\EEPROM
exit status 1
'unsigned int index' redeclared as different kind of symbol
What modification should I make to your sketch in order to use it?
What is the sketch that allows me to handle it only from a web page, without using an LCD screen?
Send a radio station to your Ka-Radio player: GIST
Simple script, at the top of the script is the usage example, basically find a radio station on iheartradio:
iheartradio station list USA
iheartradio
iheartradio Canada
Look at the source code of the iheartradio page (click on song history will help a bit) you will find things like this in it:
view-source:http://www.iheartradio.ca/all-stations/7.13793734?mode=history
<div class="delayed-image-load" data-class="" data-src="/image/policy:1.1870492:1472654994/Trancid.jpg?f=default&$p$f=a34e00f&{width}" data-ratio="" data-alt="">
<noscript><img class="" itemscope="image" alt="" src="/image/policy:1.1870492:1472654994/Trancid.jpg?f=default&w=200&$p$f$w=a199ace" /></noscript>
</div>
<div class="streamIcon">
<button class="stream-link stream-radio-station" data-ajax="true"
data-station-callsign="IHR_TRAN"
data-ad-unit="/5479/iheartradio.en/allstations"
data-ad-ss="radioplayer"
data-station-id="1.1870491"
>
<span class="ico ico-play">
<span class="ico load-hover"></span>
</span>
</button>
This is what we want:
data-station-callsign="IHR_TRAN"
IHR_TRAN is the callsign for the station you want to play. (Trancid)
Another stations callsign CIMXFM etc.
This is the radio station we are grabbing below from iheartradio 89x "CIMXFM"
Usage: python2 streamtheworldka.py CIMXFM 10.13.37.65
^Radio callsign ^IP address of Ka-Radio Device
Make sure you have python2 and curl installed on the system you are sending the station from, download the script to a file on that device, then type the command, I named the script streamtheworldka.py, so type on the command line:
python2 streamtheworldka.py (The radio call sign + FM/AM on the end) (IP Address of your Ka-Radio Player)
First, test with the call sign above/below make sure it is all in CAPS as I know that one works (may not work outside of Canada), the hard part would be finding how they named the call sign for the station you want, and some may be location locked so be aware. Also add FM/AM on the end of the call sign or the script will complain "Callsign is missing FM, AM".
The script then tells the website to give us the ShoutCast stream URL for audio stream compatibility purposes with _SC.
python2 streamtheworldka.py CIMXFM 10.13.37.65
The script is grabbing the stream URL that is a randomly encoded string of characters for that station you want, then send the URL to the ESP8266.
The script requests a URL like this:
http://playerservices.streamtheworld.com/api/livestream?version=1.5&mount=CIMXFM&lang=en
Then it sends back an XML which we extract the values from:
<live_stream_config xmlns="http://provisioning.streamtheworld.com/player/livestream-1.5" version="1.5">
<script/>
<mountpoints>
<mountpoint>
<status>
<status-code>200</status-code>
<status-message>OK</status-message>
</status>
<transports>
<transport>http</transport>
</transports>
<metadata>
<shoutcast-v1 enabled="true" mountSuffix="_SC"/>
<shoutcast-v2 enabled="false" mountSuffix="_SC"/>
<sse-sideband enabled="true" streamSuffix="_SC" metadataSuffix="_SBM"/>
</metadata>
<servers>
<server sid="18853">
<ip>18853.live.streamtheworld.com</ip>
<ports>
<port type="http">80</port>
<port type="http">3690</port>
</ports>
</server>
<server sid="17023">
<ip>17023.live.streamtheworld.com</ip>
<ports>
<port type="http">80</port>
<port type="http">3690</port>
</ports>
</server>
<server sid="13733">
<ip>13733.live.streamtheworld.com</ip>
<ports>
<port type="http">80</port>
<port type="http">3690</port>
</ports>
</server>
<server sid="14213">
<ip>14213.live.streamtheworld.com</ip>
<ports>
<port type="http">80</port>
<port type="http">3690</port>
</ports>
</server>
</servers>
<metrics>
<tag name="uuid"/>
</metrics>
<mount>CIMXFM</mount>
<format>FLV</format>
<bitrate>48000</bitrate>
<media-format container="flv" cuepoints="stwcue">
<audio index="0" samplerate="22050" codec="mp3" bitrate="48000" channels="2"/>
</media-format>
<authentication>0</authentication>
<timeout>0</timeout>
<send-page-url>0</send-page-url>
</mountpoint>
</mountpoints>
</live_stream_config>
The script extracts,
Random generated IP: 18853.live.streamtheworld.com
Port: 80, 3690, etc
MountPoint(callsign): CIMXFM
I noticed that there was ShoutCast compatibility in the XML which it shows to add "_CS" onto the mount point: CIMXFMAAC_CS
Then the script sends this data gathered from the XML to Ka-Radio device:
curl http://10.13.37.65/?instant="18853.live.streamtheworld.com:3690/CIMXFMAAC_SC"
Then Ka-Radio should start playing the stream.
If you attach a serial cable to Ka-Radio you should be able to debug what URL is getting passed to it, to see if the station is getting sent properly.
Successful run should look like this on the serial line:
$ cu -l ttyUSB0 -s 115200
Connected.
#INFO:""#
##CLI.STOPPED# from Web Instant
##CLI.URLSET#: 18863.live.streamtheworld.com
##CLI.PATHSET#: /CIMXFMAAC_SC
##CLI.PORTSET#: 3690
##CLI.ICY0#:
##CLI.ICY3#: http:\/\/www.89xradio.com
##CLI.ICY4#: Rock
##CLI.ICY5#: 40
##CLI.ICY6#:
##CLI.PLAYING#
##CLI.META#: Soundgarden - Fell On Black Days (89X Live-X
Someone with FreeRTOS skills could probably bake this into Ka-Radio, if there was enough memory, but probably best if it was a plugin of sorts, as they could change the way their API works at any moment. Have a hardware button that always generates the random URL and play's your favorite radio station.
Hope it helps!
This is shaping up nicely to be a great internet radio, there's a couple of suggestions though I think would help, the main one being saving the volume (or more accurately, a volume offset) per station. Some of the stations are extremely quiet and some very loud, it would be nice to be able to change station without fear of having my ears blown out ;)
Great Project! i used version 1.6 from the bin folder.
I noticed two things that i want you to know.
First, the volume control in the webinterface does not work.
Second, i testet the restore station list function with your list, after that i was not able to hear any station. after i edited one station and set the volume offset to 126 everything works fine
Kind regards,
Stephan
I noticed that the domain name time.nist.gov used in ntp.c is most of the time wrongly attributed in most of the free DNS I've tested in my country (The Netherlands), as well as in worldwide public DNS such as Google's (8.8.8.8 / 8.8.4.4) or OpenDNS' (208.67.222.222 / 208.67.220.220). Nearly all the time, they answer a wrong IP which isn't reachable, but it's not deterministic, on exceptional cases it works.
By switching for some German DNS (from Chaos Computer Club : 194.150.168.168 ) in my router, all the requests are now done correctly (tested with PING).
I am aware that it's a very personal problem (it seems that most, if not all Dutch DNS are affected, I didn't check all of them in that list : https://public-dns.info/nameserver/nl.html , and some are also affected in Germany), but some way to fix this would be :
Solutions 1 or 2 are probably the easiest to implement, and I highly doubt that some tens of karadios over the world would take an NTP server down (that's my opinion though).
Thank you for all of your hard work !
Is it possible in next time to upgrade the sleep mode and the precisely scheduled time. For example OFF at 22:00 and ON at 8:00?
Hello,
if have downloaded the files from hackaday and flashed like this:
"To upgrade to this release, please flash user1.4096.new.4.bin at 0x1000 ,
user2.4096.new.4.bin at 0X81000 and blank.bin at 0x7e000 & 0x3fe000"
and also boot.1.6.bin to 0x0000
but I do not get a connection. Something is wrong with flashing.
Can you please check and update the flashing guidelines?
Thanks a lot!
Hi,
I tried to flash the new version on a ESP-12F. Did it before successfully with former version on other chips.
Now after flashing not getting access point and on serial terminal @74880 baud I'm only getting:
" ets Jan 8 2013,rst cause:2, boot mode:(3,0)
load 0x40100000, len 2408, room 16
tail 8
chksum 0xef
load 0x00000000, len 0, room 0
tail 0
chksum 0xef
load 0x00000000, len 0, room 8
tail 0
chksum 0xef
csum 0xef
csum err
ets_main.c "
On the same chip, I installed the WifiAccessPoint ESP8266Wifi sample scetch with the arduino ide and it worked fine as an access point.
Any ideas?
Hi! First of all I would like to say thanks a lot for this project, - it is exactly what I was looking for to build up a WiFi radio.
Sorry this issue thing is not supposed to ask this kind of questions, I am not so familiar with the GitHub communication principles and approaches, but I saw in comments on instructables and Hackaday that there is some way to add LCD and buttons. Do you have instructions to cover how it could be implemented?
And one more - I saw the instructions to upload your firmware via the ESPRESSO. I guess that the same could be done with the source code and Arduino SDK, but can't find out how it can be done exactly. Do you have some docs to cover this part as well?
Again, - thanks again for this great project.
Hi.
i have flashed the binary and had a connection to the "WifiWebRadio". Entered the SSID and passphrase of my WLAN....and the connection was lost. means i could not find the device in my network. I tried to flash the software again but successless.
Does someone know how i can start from scratch? i have already done a 'erase_flash' But nothing helps
thx
Ole
Hello Karawin,
Thanks for the great software but I now have a problem with newer software after OTA update.
The keys do not work as before.
I have an ESP-07 (32Mbit) so no 2: 1 voltage divider
With the newer software, the keys no longer function,
If I retrofit the 100K / 220K voltage divider (like NodeMCU)
the keys work as before.
I think my board is not recognized correctly.
Gerd
This is a suggestion making KA-Radio32 even better :-) I like it!
While KA-Radio32 was running an MP3 stream fine, I had to restart my Wifi Router.
Naturally the ESP32 was disconnected from the Wifi and the stream stopped. Serial monitor reported:
E (3681) wifi: esp_wifi_disconnect 844 wifi not start
When the Wifi router was UP again, the ESP32 reconnected to the Wifi router, but the MP3 stream was not restarted automatically.
Re-starting the MP3 stream by ressping Play in the WebGUI started the MP3 stream again.
Maybe re-starting the playing the "active" MP3 stream after a Wifi disconnection is nice addition to Ka-Radio32.
Hi @karawin
I am trying to load this List of stations, but after having several restarts of the module, the list appears in the web page of the project.
When playing the stations, 50% of them work and the other 50% do not.
When I press "Refresh locale list" on the STATIONS website, 50% randomly disappears, which are the ones that can not be played when they appear in the drop-down list.
I'm using version 1.1.7
The same thing happened in previous versions
Hey there,
Getting no AP after flashing as well, unfortunately not gone after several reboots, as well as double-checking all connections did not show up any obvious faults
I used Dimitris Saltas PCB [1] manufactured by linked OSH Park [2]. Only obvious difference is I got an ESP-12F which is not AI-Thinker [3]. So far I assembled two boards, both show same result:
External ram detected
uart speed: 115200
Release 1.6.2, Revision 2
SDK 1.4.2(f57d61a)
data : 0x3ffe8000 ~ 0x3ffe88fc, len: 2300
rodata: 0x3ffe8900 ~ 0x3ffea2f4, len: 6644
bss : 0x3ffea2f8 ~ 0x3fff1718, len: 29728
heap : 0x3fff1718 ~ 0x40000000, len: 59624
Heap size: 44800
size_map: 4
Eeprom_start: 3e0000
Eeprom_start1: 3d0000
Flash size: 4194304
t0 task: 3fff52a8
t1 task: 3fff5530
t2 task: 3fff5b50
t3 task: 3fff5f40
t4 task: 3fff6588
Heap size: 38016
mode : sta(2c:3a:e8:17:74:df)
add if0
I already tried flashing in QIO as well as DIO mode - both come up with same result.
Is there any difference between my ESP and the AI-Thinker one?
Other issues suggested disconnecting the DREQ line between ESP-12F & VS1053B, but there were no more information about if that did anything. I'm holding off that attempt as it could easily break the soldering pads.
Any suggestion what else to check?
Thanks for any help,
georg
[1] https://github.com/dsaltas/WiFi-WebRadio
[2] https://oshpark.com/shared_projects/H0BeSd2u
[3] https://de.aliexpress.com/item/Free-Shipping-10pcs-lot-ESP8266-remote-serial-Port-WIFI-wireless-module-through-walls-Wang-esp-12F/32471895953.html?spm=a2g0s.9042311.0.0.sL94xJ
Hi!
The output debug info show the VS1053 detect =0, but should be 4 right? I have tried two VS1053 boards, all the same, my esp8266 board is wemos D1. Please help. thanks!
=> extraram state: 0 0xff
Release 1.4.2, Revision 3
SDK 1.4.2(f57d61a)
data : 0x3ffe8000 ~ 0x3ffe8930, len: 2352
rodata: 0x3ffe8930 ~ 0x3ffea4a4, len: 7028
bss : 0x3ffea4a8 ~ 0x3fff18b0, len: 29704
heap : 0x3fff18b0 ~ 0x40000000, len: 59216
Heap size: 30304
size_map: 4
t0 task: 3fff8b48
t1 task: 3fff8dd0
t4 task: 3fff93c8
t3 task: 3fff97b8
t2 task: 3fff9db0
t5 task: 3fffa1c8
Heap size: 22712
mode : sta(2c:3a:e8:0a:ed:b1)
add if0
SCI_Mode (0x4800) = 0x4802
SCI_Status (0x48) = 0xC
VS Version (VS1053 is 4) = 0
SCI_ClockF = 0xB000
device: 3fffabe8
volume: 0
UART READYAP1: sscz_48FD, AP2:
AP1:Station Ip: 192.168.0.100
Trying sscz_48FD , I: 0 status: 1
scandone
state: 0 -> 2 (b0)
Trying sscz_48FD , I: 1 status: 1
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 5
pm open phy_2,type:2 0 0
cnt
connected with sscz_48FD, channel 7
dhcp client start...
ip:192.168.0.104,mask:255.255.255.0,gw:192.168.0.1
autostart: playing:0, currentstation:0
sleep enable,type: 2
No panelADC Div: 0 from adc: 2
Hi can you please add this option, for people that just want to test it out before they commit to buying an i2s dac.
Thank you.
This will eliminate the need manually change HTML at index.html
At fist i wanted to thank you for you hard work and time spent on this project.
This not an issue, but more like feature request.
It would be nice that device on startup starts automatically playing radio station which was running before shutdown.
At fist i thought that its configurable on webui with "AutoPlay" checkbox, but it did not do anything.
What AutoPlay checkbox does?
Hi!!
Do you plan to replace the external flash? SPI flash like Winbond is much more cheaper and bigger, also what is the function of the flash?
I have build the board, but play is not fluent probably because of the network, does any settings can help?
Thank you for the great project!
Steps to reproduce:
Hallo,
i have built up a ka-radio out of an module VS1053B and an nodemcu V3.
I have flashed the nodemcu with firmware 1.3.
For now i never heared anything out of the VS1053 module (small handy earphone connected). I checked the connection and i think it's OK.
The web interface worked first for configuration, but now it hangs sometimes after:
Sometimes it shows strange behaviour in the settings:
I attached a logfile after hangup and klicking 1 time (!!) on the reset button.
logfile.txt
It restarts several times and than hangs up.
For flashing i used this tool with DIO setting as QIO not works.
I have no logical conclusion because its a little bit confused problem.
So whats wrong here?
Could DIO instead of QIO be an problem?
Could it be that i have to change to another memory map 512+512 ---> 1024+1024 ?? (32Mbit-C1 ?)
Is there a precompiled testcode to check if the VS1053 is working?
Thanks!
reproducible on 1.4.2
Hello,
I succesfully flashed Ka-Radio and attached it to a Class-D amplifier module to replace my current amplifier. Now I would like to turn off the amplifier when playback stopped to save energy. Using a relais or transistor shouldn't be a problem, but I need a signal which I can use to switch the transistor. The signal needs to be high while playing and low while not playing.
Is there already a pin configured I could use for this?
I created a fritzing drawing as stated above and the required vs1053 lcsoft-module (only breadboard view). Here are the files for your personal use.
Ka-Radio.zip
Sometimes when I chose the desired station, and I pressed the play - off the power and turned it back to station plays 1 second and stops playing
(off the power times with no web browser) testing on V1.0.9
=> extraram state: 0 0xff ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
data : 0x3ffe8000 ~ 0x3ffe88d4, len: 2260
rodata: 0x3ffe88e0 ~ 0x3ffea744, len: 7780
bss : 0x3ffea748 ~ 0x3fff15b0, len: 28264
heap : 0x3fff15b0 ~ 0x40000000, len: 59984
Heap size: 32200
t0 task: 3fff83e8
t1 task: 3fff8580
t4 task: 3fff89a8
t3 task: 3fff8fc8
t2 task: 3fff9cf0
mode : sta(5c:cf:7f:23:d6:53)
add if0
I2S Speed: 0
SCI_Mode (0x4800) = 0x802
SCI_Status (0x48) = 0x48
VS Version (VS1053 is 4) = 4
SCI_ClockF = 0x6000
UART READY TO READ
Station Ip: 192.168.100.246
DHCP: 0x1
Device: Ip: 192.168.100.246
I: 0 status: 0
In I: 0 status: 1
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
In I: 1 status: 1
state: 3 -> 5 (10)
add 0
aid 2
pm open phy_2,type:2 0 0
cnt
connected with 47501, channel 3
dhcp client start...
ip:192.168.100.246,mask:255.255.255.0,gw:192.168.100.1
autostart: playing:1, currentstation:2
I2S Speed: 0
##CLI.STOPPED#
##CLI.URLSET#: online-hitfm.tavrmedia.ua
##CLI.PATHSET#: /HitFM
##CLI.PORTSET#: 8000
##CLI.ICY0#: Hit FM
##CLI.ICY3#: http://www.hitfm.ua
##CLI.ICY4#: Only Hits!
##CLI.ICY5#: 128
##CLI.ICY6#: Only Hits!
##CLI.ICY7#: ice-samplerate=44100;ice-bitrate=128;ice-channels=2
##CLI.PLAYING#
##CLI.STOPPED#
or
=> extraram state: 0 0xff ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
data : 0x3ffe8000 ~ 0x3ffe88d4, len: 2260
rodata: 0x3ffe88e0 ~ 0x3ffea744, len: 7780
bss : 0x3ffea748 ~ 0x3fff15b0, len: 28264
heap : 0x3fff15b0 ~ 0x40000000, len: 59984
Heap size: 32200
t0 task: 3fff83e8
t1 task: 3fff8580
t4 task: 3fff89a8
t3 task: 3fff8fc8
t2 task: 3fff9cf0
mode : sta(5c:cf:7f:23:d6:53)
add if0
I2S Speed: 0
SCI_Mode (0x4800) = 0x802
SCI_Status (0x48) = 0x48
VS Version (VS1053 is 4) = 4
SCI_ClockF = 0x6000
UART READY TO READ
Station Ip: 192.168.100.246
DHCP: 0x1
Device: Ip: 192.168.100.246
I: 0 status: 0
In I: 0 status: 1
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
In I: 1 status: 1
state: 3 -> 5 (10)
add 0
aid 2
pm open phy_2,type:2 0 0
cnt
connected with 47501, channel 3
dhcp client start...
ip:192.168.100.246,mask:255.255.255.0,gw:192.168.100.1
autostart: playing:1, currentstation:2
I2S Speed: 0
##CLI.STOPPED#
##CLI.URLSET#: online-hitfm.tavrmedia.ua
##CLI.PATHSET#: /HitFM
##CLI.PORTSET#: 8000
##CLI.ICY0#: Hit FM
##CLI.ICY3#: http://www.hitfm.ua
##CLI.ICY4#: Only Hits!
##CLI.ICY5#: 128
##CLI.ICY6#: Only Hits!
##CLI.ICY7#: ice-samplerate=44100;ice-bitrate=128;ice-channels=2
##CLI.STOPPED#
In most cases operate normally Autoplay's
=> extraram state: 0 0xff ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
data : 0x3ffe8000 ~ 0x3ffe88d4, len: 2260
rodata: 0x3ffe88e0 ~ 0x3ffea744, len: 7780
bss : 0x3ffea748 ~ 0x3fff15b0, len: 28264
heap : 0x3fff15b0 ~ 0x40000000, len: 59984
Heap size: 32200
t0 task: 3fff83e8
t1 task: 3fff8580
t4 task: 3fff89a8
t3 task: 3fff8fc8
t2 task: 3fff9cf0
mode : sta(5c:cf:7f:23:d6:53)
add if0
I2S Speed: 0
SCI_Mode (0x4800) = 0x802
SCI_Status (0x48) = 0x48
VS Version (VS1053 is 4) = 4
SCI_ClockF = 0x6000
UART READY TO READ
Station Ip: 192.168.100.246
DHCP: 0x1
Device: Ip: 192.168.100.246
I: 0 status: 0
In I: 0 status: 1
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
In I: 1 status: 1
state: 3 -> 5 (10)
add 0
aid 2
pm open phy_2,type:2 0 0
cnt
connected with 47501, channel 3
dhcp client start...
ip:192.168.100.246,mask:255.255.255.0,gw:192.168.100.1
autostart: playing:1, currentstation:2
I2S Speed: 0
##CLI.STOPPED#
##CLI.URLSET#: online-hitfm.tavrmedia.ua
##CLI.PATHSET#: /HitFM
##CLI.PORTSET#: 8000
##CLI.ICY0#: Hit FM
##CLI.ICY3#: http://www.hitfm.ua
##CLI.ICY4#: Only Hits!
##CLI.ICY5#: 128
##CLI.ICY6#: Only Hits!
##CLI.ICY7#: ice-samplerate=44100;ice-bitrate=128;ice-channels=2
##CLI.PLAYING#
##CLI.META#: Xiт FM - www.hitfm.ua
Thank you with best regards Vladimir.
I tried to use button control via ADC input. I follow your schematic (resistive divider 1k, 1k, ..., 16k)
but some buttons doesn't work. Next station, Start button. What is ADC thresholds for individual buttons. I am going to try measure voltage on ADC input.
Hi,
this is a very nice and well made it project, Thank you!
I do something wrong maybe, because when I try to put AP name, pswd , a new IP and gateway, this is not happening , it comes back on 192.168.4.1 and I have no connection to internet for ESP module.
on router I have ...1.1, try it also with original class ...8.1 and with ...0.1 , all the same.
I not have memory IC (until I get it), but it work also without it, no? and when ESP have no power, I need to rewrite all settings in this case?
sorry for all questions, but I am more on hardware and a beginner in codding .
Im having a hard time to get a connection. Sometimes it will connect to my WLAN but most time, the blue led (nodemcu v3) blinks a few times and then nothing happens. After restarting the esp many times it will reconnect to my wlan.
Hi,
when trying to update from version 1.3 (flashed via USB) to version 1.3.1 via Webinterface, it leaves the version number in the upper right corner on V1.3 (also after cache erase in the webbrowser)
The serial terminal says:
"update firmware
current id 0
flash size 4
Connect ok!
Request send success
pre erase flash!
userbin sumlength:410164
flash erase over
userbin sumlength:410164 flash:1
Connect ok!
Request send success
userbin sumlength:410164
server response with something else,check it!
upgrade data error!
Connect ok!
Request send success
pre erase flash!
userbin sumlength:410164
flash erase over
userbin sumlength:410164 flash:1
Connect ok!
Request send success
userbin sumlength:410164
server response with something else,check it!
upgrade data error!
Connect ok!
Request send success
pre erase flash!
userbin sumlength:410164
flash erase over
userbin sumlength:410164 flash:1
Connect ok!
Request send success
userbin sumlength:410164
server response with something else,check it!
upgrade data error!
Connect ok!
Request send success
pre erase flash!
userbin sumlength:410164
flash erase over
userbin sumlength:410164 flash:1
Connect ok!
Request send success
userbin sumlength:410164
server response with something else,check it!
upgrade data error!
Connect ok!
Request send success
pre erase flash!
userbin sumlength:410164
flash erase over
userbin sumlength:410164 flash:1
Connect ok!
Request send success
userbin sumlength:410164
server response with something else,check it!
upgrade data error!
spi_flash_read error 1
Exit upgrade task.
+OK: FW upgrade success.
reboot to use2
state: 5 -> 0 (0)
rm 0
pm close 7 0 0/341787327
del if0
usl
##CLI.STOPPED# from try restart
ets Jan 8 2013,rst cause:2, boot mode:(3,0)
load 0x40100000, len 2408, room 16
tail 8
chksum 0xe5
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0x84
load 0x3ffe8310, len 632, room 0
tail 8
chksum 0xd8
csum 0xd8
2nd boot version : 1.6
SPI Speed : 40MHz
SPI Mode : DIO
SPI Flash Size & Map: 32Mbit(512KB+512KB)
jump to run user2 @ 81000
error magic!
first boot failed, reboot to try backup bin
ets Jan 8 2013,rst cause:4, boot mode:(3,0)
wdt reset
load 0x40100000, len 2408, room 16
tail 8
chksum 0xe5
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0x84
load 0x3ffe8310, len 632, room 0
tail 8
chksum 0xd8
csum 0xd8
2nd boot version : 1.6
SPI Speed : 40MHz
SPI Mode : DIO
SPI Flash Size & Map: 32Mbit(512KB+512KB)
jump to run user1 @ 1000
~r�⸮�⸮b
=> extraram state: 0 0xff ⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮
SDK 1.4.2(f57d61a)
data : 0x3ffe8000 ~ 0x3ffe899a, len: 2458
rodata: 0x3ffe89a0 ~ 0x3ffeb1ec, len: 10316
bss : 0x3ffeb1f0 ~ 0x3fff2150, len: 28512
heap : 0x3fff2150 ~ 0x40000000, len: 57008
Heap size: 29224
size_map: 4
t0 task: 3fff8f88
t1 task: 3fff9198
t4 task: 3fff96a0
t3 task: 3fff9cc0
t2 task: 3fffa8d0
Heap size: 21312
mode : sta(XX:XX:XX:XX:XX:XX)
add if0
watermark:336 heap:19928
SCI_Mode (0x4800) = 0x4802
SCI_Status (0x48) = 0x4C
VS Version (VS1053 is 4) = 4
p: XXX.XXX.X.XXX
scandone
Trying XXX, I: 0 status: 1
scandone
state: 0 -> 2 (b0)
Trying XXX, I: 1 status: 1
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 1
pm open phy_2,type:2 0 0
cnt
connected with XXX, channel 10
dhcp client start...
ip:XXX.XXX.X.XXX,mask:255.255.255.0,gw:XXX.XXX.X.X
autostart: playing:1, currentstation:3
I2S Speed: 0
##CLI.STOPPED# from playStationInt
##CLI.NAMESET#: 3 WDR5
##CLI.URLSET#: wdr-wdr5-live.icecast.wdr.de
##CLI.PATHSET#: /wdr/wdr5/live/mp3/128/stream.mp3
##CLI.PORTSET#: 80
##CLI.OVOLSET#: 0
##CLI.VOL#: 90
##CLI.ICY0#: WDR 5, Westdeutscher Rundfunk Koeln
##CLI.ICY3#: http://www.wdr5.de
##CLI.ICY4#: wdr
##CLI.ICY6#: Westdeutscher Rundfunk Koeln
##CLI.PLAYING#
##CLI.META#: WDR 5 Hotline: 0221-56789 555
##CLI.META#: WDR 5 - Ich will es wissen
##CLI.META#: Westblick - Das Landesmagazin mit Edda Dammmüller"
I assume the flashing did not work because of several "upgrade data error!".
I don't understand the:
"spi_flash_read error 1
Exit upgrade task.
+OK: FW upgrade success."
What can I do to get the update via webinterface working?
Best regards,
H. Cremer
Had to keep resetting the unit until I was able to get back in for a second to upload the sample station list, then it stabilized again.
Also after you delete the entire list there doesn't seem to be a way to add one station back without importing a list. The station screen was empty no edit buttons until the import.
Hello,
can you please check the documentation for the connections? I think in the PDF from Piotr Sperka there are other connections that with you readme.md file. Also the RAM is not mentioned in the readme connections.
Thanks a lot.
Volume control via Web Interface not possible changing the Sliders makes no difference in Volume...
changing the Volume via UART (cli.vol+/cli.vol-) is possible and works just fine...
I get many socket errors:
Clear i: 0, socket: 2, errno: 107
maybe that have to do with it
=================================================
Startup Log:
=> extraram state: 0 0xff ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
Release 1.3.4
SDK 1.4.2(f57d61a)
data : 0x3ffe8000 ~ 0x3ffe899a, len: 2458
rodata: 0x3ffe89a0 ~ 0x3ffeb1dc, len: 10300
bss : 0x3ffeb1e0 ~ 0x3fff2168, len: 28552
heap : 0x3fff2168 ~ 0x40000000, len: 56984
Heap size: 29200
size_map: 4
t0 task: 3fff8fa0
t1 task: 3fff91b0
t4 task: 3fff96b8
t3 task: 3fff9d00
t2 task: 3fffa910
t5 task: 3fffaf58
Heap size: 19040
mode : sta()
add if0
UART READY
AP1: , AP2:
AP1:Station Ip:
Trying , I: 0 status: 1
SCI_Mode (0x4800) = 0x4802
SCI_Status (0x48) = 0x4C
VS Version (VS1053 is 4) = 4
SCI_ClockF = 0xB800
I2S Speed: 0
plugin size 6350 3175
plugin start: 7 1 8050 6
plugin size 234 117
plugin start: 7 1 8f00 6
scandone
state: 0 -> 2 (b0)
Trying , I: 1 status: 1
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 2
pm open phy_2,type:2 0 0
cnt
connected with , channel 12
dhcp client start...
ip:,mask:255.255.255.0,gw:
Clear i: 0, socket: 1, errno: 107
autostart: playing:1, currentstation:0
I2S Speed: 2
##CLI.STOPPED# from playStationInt
##CLI.NAMESET#: 0 #Musik-House
##CLI.URLSET#: house-high.rautemusik.fm
##CLI.PATHSET#: /
##CLI.PORTSET#: 80
##CLI.OVOLSET#: 0
##CLI.VOL#: 80
No panel
ADC Divisor: 0 from adc: 0
Header: Moved
##CLI.STOPPED# from C_HEADER
##CLI.URLSET#: de-hz-fal-stream07.rautemusik.fm
##CLI.PATHSET#: /house
##CLI.PORTSET#: 80
##CLI.ICY0#: #MUSIK.HOUSE (FUNKY) - WWW.RAUTEMUSIK.FM - 24H MIXED HOUSE DANCE ELECTRO FUNK MINIMAL AND MORE!
##CLI.ICY1#:
This stream requires <a href="http://www.winamp.com/">Winamp</a>
##CLI.ICY2#: SHOUTcast Distributed Network Audio Server/Linux v1.9.8
##CLI.ICY3#: http://www.rautemusik.fm/house/
Clear i: 0, socket: 2, errno: 107
##CLI.ICY4#: House Electro Electronic
##CLI.ICY5#: 192
##CLI.PLAYING#
##CLI.META#: Shirox - Bass In Your Face
Clear i: 0, socket: 2, errno: 107
Could not find the file with all command list (interfaces.txt) on github
The checkbox "autostart" is enabled, but after a reset the last played stream is not started.
Is this a bug or a feature?
I mean it would be great to hear the last station when powering on the radio.
Hello,
You have done a great job!!!
Controlling Kia radio with nextion hmi seems to work (waiting for my display used simulation softwre from nextion). Now I'm wondering if some additional printf commands in webserver and client would allowing to get correct feedback for the display. Actually i could see there ##CLI.xxx# strings printed.
Would it harm the code when im adding an additional printf with my nextion instruction string?
And of course it only works when i figure out how to compile it?
Hi! Is autoplay checkbox should enable autoplay last played station after booting up? If so, it doesn't work.
I use v 1.2.1. Unchecking and checking it again doesn't help.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.