Recent Posts

Pages: [1] 2 3 ... 10
1
Hardware Questions / Re: Beginner questions, extending / mounting the DIY board
« Last post by mario on June 01, 2020, 01:55:26 PM »
Hi Jorge, I still have them - also panels to make a complete enclosure. But you will need to attach the Glo board permanently and end up with empty wooden Whale case. You could get a bare Glo PCB and assemble another one (there are 0402 components). Also this version is less than ideal because SD card is wired in 1-bit SPI mode which is slow. This board will get redesigned soon, probably accepting standard ESP32-WROVER or ESP32-WROOM modules instead of the Glo board.
2
Programming Questions / Re: Updating firmware on Glo
« Last post by mario on May 30, 2020, 08:16:25 PM »
Hi Jorge, great progress - looks like you got past the compilation but the linker reports problems.

Quote
All but one of the "not found" errors went away, this file wasn't found, and I checked and the include_priv folder doesn't exist, maybe its modified code?

This often happens, as files are moved around or renamed (by the ESP-IDF team). I'm not sure why this pops up here though as you used the same code, maybe I made local changes to fix this just like you did, that made it diverging from what is in the repos.

Now, the remaining problem is likely to be caused by those required functions, variables or definitions missing in the pre-compiled library. You should check in the "build" subdirectory, to see if all user components - those under "main", with a component.mk file (dkr, dsp, hw, mi and v1) have their counterpart there, and got compiled successfully (you can also delete all that is inside of build directory to see only what is freshly generated). So, in each of them, a couple of .d and .o files should appear and also one .a (e.g. in hw, it will be libhw.a).

Then, in build/main there should be libmain.a created, with all that merged together. If the linker still reports a problem, you can check if a particular resource can be found somewhere in that file as a text string. If it all looks correct but you are still getting these errors then maybe the linker does not include that library at all, it might be another configuration problem. You can also check how exactly the linker command looks like (somewhere in logs), if the libmain.a is mentioned among its parameters.
3
Hi Mario,

I would love one of these boards. I fount the sideways resistor. I think I can pull it off. Do you still have some?
4
Programming Questions / Re: Updating firmware on Glo
« Last post by coutlasssupreme on May 30, 2020, 03:30:19 PM »
Hi Mario,

Thanks for the clarification. Very useful.

So I followed your advice, which I also think is the best approach. Please let me know if I understood correctly.

I decided to use version 3 so I'm using the V1.0 commit from Sep 28, 2019.
I installed the preconfigured toolchain. I'm not using Eclipse, just the mingw32 command line.
I fixed the component.mk paths to match mine.
All but one of the "not found" errors went away, this file wasn't found, and I checked and the include_priv folder doesn't exist, maybe its modified code?:

Code: [Select]
#include "bootloader_support/include_priv/bootloader_random.h"

So I changed it to:

Code: [Select]
#include "bootloader_support/include/bootloader_random.h"

Which "worked", but now I got all these "missing references":

Code: [Select]
jorge@LAPTOP-8KUK39EP MINGW32 ~/esp/Glo_v1
$ make all
Toolchain path: /opt/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Toolchain version: crosstool-ng-1.22.0-80-g6c4433a5
Compiler version: 5.2.0
Python requirements from C:/msys32/home/jorge/esp/esp-idf/requirements.txt are satisfied.

App "app-template" version: 9273e6a-dirty
LD build/app-template.elf
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(FilteredChannels.o):(.literal._Z25filtered_channel_add_echov+0x0): undefined reference to `echo_buffer_ptr0'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(FilteredChannels.o):(.literal._Z25filtered_channel_add_echov+0x4): undefined reference to `echo_dynamic_loop_length'
...
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(FilteredChannels.o):(.literal._Z16filtered_channeliiif+0x10c): undefined reference to `global_settings'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(FilteredChannels.o):(.literal._Z16filtered_channeliiif+0x110): undefined reference to `tempo_bpm'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(FilteredChannels.o):(.literal._Z16filtered_channeliiif+0x170): undefined reference to `IIR_Filter::iir_filter_multi_sum_w_noise(float, IIR_Filter**, int, float*, unsigned short, float)'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(FilteredChannels.o):(.literal._Z16filtered_channeliiif+0x174): undefined reference to `add_reverb'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(FilteredChannels.o):(.literal._Z16filtered_channeliiif+0x184): undefined reference to `sd_write_sample'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(FilteredChannels.o):(.literal._Z16filtered_channeliiif+0x188): undefined reference to `Filters::start_update_filters_pairs(int*, float*, int)'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(FilteredChannels.o):(.literal._Z16filtered_channeliiif+0x1a0): undefined reference to `codec_set_mute'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(FilteredChannels.o):(.literal._Z16filtered_channeliiif+0x1a4): undefined reference to `Filters::release()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(FilteredChannels.o): In function `filtered_channel(int, int, int, float)':
C:/msys32/home/jorge/esp/Glo_v1/main/FilteredChannels.cpp:132: undefined reference to `IIR_Filter::iir_filter_multi_sum_w_noise_and_wind(float, IIR_Filter**, int, float*, unsigned short, float, int)'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(glo_config.o):C:/msys32/home/jorge/esp/Glo_v1/main/glo_config.c:1850: more undefined references to `error_blink' follow
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0x1c): undefined reference to `process_buttons_controls_whale'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0x2c): undefined reference to `remapped_channels'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0x30): undefined reference to `remapped_channels_found'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0x44): undefined reference to `glo_run'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0x4c): undefined reference to `channel_loop'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0x50): undefined reference to `channel_loop_remapped'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xac): undefined reference to `codec_reset'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xb0): undefined reference to `whale_init_power'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xb4): undefined reference to `i2c_master_init'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xb8): undefined reference to `init_deinit_TWDT'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xbc): undefined reference to `generate_random_seed'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xc0): undefined reference to `whale_init_RGB_LED'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xc4): undefined reference to `whale_init_buttons_GPIO'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xc8): undefined reference to `RGB_LEDs_blink'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xcc): undefined reference to `init_echo_buffer'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xd0): undefined reference to `init_accelerometer()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xd4): undefined reference to `init_i2s_and_gpio'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xd8): undefined reference to `codec_init'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xe4): undefined reference to `channel_bytebeat()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xe8): undefined reference to `channel_chopper()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xec): undefined reference to `channel_dekrispator()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xf0): undefined reference to `channel_drum_kit()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xf4): undefined reference to `codec_select_input'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o):(.literal.app_main+0xf8): undefined reference to `gecho_test_MIDI_input'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(main.o): In function `app_main':
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:36: undefined reference to `codec_reset'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:40: undefined reference to `whale_init_power'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:40: undefined reference to `i2c_master_init'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:46: undefined reference to `init_deinit_TWDT'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:49: undefined reference to `generate_random_seed'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:66: undefined reference to `whale_init_RGB_LED'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:75: undefined reference to `whale_init_buttons_GPIO'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:76: undefined reference to `RGB_LEDs_blink'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:78: undefined reference to `init_echo_buffer'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:79: undefined reference to `init_accelerometer()'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:123: undefined reference to `init_i2s_and_gpio'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:143: undefined reference to `codec_init'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:248: undefined reference to `channel_bytebeat()'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:253: undefined reference to `channel_chopper()'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:255: undefined reference to `channel_dekrispator()'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:256: undefined reference to `channel_drum_kit()'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:258: undefined reference to `codec_select_input'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:260: undefined reference to `codec_select_input'
C:/msys32/home/jorge/esp/Glo_v1/main/main.cpp:262: undefined reference to `gecho_test_MIDI_input'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z8DCO_playPv+0x4): undefined reference to `BUTTONS_SEQUENCE_TIMEOUT'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z8DCO_playPv+0x8): undefined reference to `channel_running'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z8DCO_playPv+0x18): undefined reference to `DCO_Synth::DCO_Synth()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z8DCO_playPv+0x1c): undefined reference to `DCO_Synth::v1_init()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z8DCO_playPv+0x20): undefined reference to `DCO_Synth::v1_play_loop()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z8DCO_playPv+0x24): undefined reference to `DCO_Synth::~DCO_Synth()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z18channel_antarcticav+0x4): undefined reference to `volume_ramp'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z18channel_antarcticav+0xc): undefined reference to `song_of_wind_and_ice()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z11channel_dcov+0xc): undefined reference to `Delay'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z16channel_granularv+0x0): undefined reference to `granular_sampler_simple()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z14channel_reverbv+0x0): undefined reference to `start_MCLK'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z14channel_reverbv+0x4): undefined reference to `decaying_reverb()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z14channel_reverbv+0x8): undefined reference to `stop_MCLK'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z17channel_mi_cloudsv+0x0): undefined reference to `clear_unallocated_memory'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z17channel_mi_cloudsv+0x4): undefined reference to `clouds_main(int)'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z12pass_throughv+0x10): undefined reference to `event_next_channel'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z12pass_throughv+0x14): undefined reference to `sampleCounter'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o):(.literal._Z12pass_throughv+0x18): undefined reference to `ADC_sample'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o): In function `DCO_play(void*)':
C:/msys32/home/jorge/esp/Glo_v1/main/ChannelsDef.cpp:47: undefined reference to `DCO_Synth::DCO_Synth()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o): In function `channel_antarctica()':
C:/msys32/home/jorge/esp/Glo_v1/main/ChannelsDef.cpp:100: undefined reference to `song_of_wind_and_ice()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o): In function `channel_dco()':
C:/msys32/home/jorge/esp/Glo_v1/main/ChannelsDef.cpp:136: undefined reference to `Delay'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o): In function `channel_granular()':
C:/msys32/home/jorge/esp/Glo_v1/main/ChannelsDef.cpp:152: undefined reference to `granular_sampler_simple()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o): In function `channel_reverb()':
C:/msys32/home/jorge/esp/Glo_v1/main/ChannelsDef.cpp:164: undefined reference to `start_MCLK'
C:/msys32/home/jorge/esp/Glo_v1/main/ChannelsDef.cpp:165: undefined reference to `decaying_reverb()'
C:/msys32/home/jorge/esp/Glo_v1/main/ChannelsDef.cpp:166: undefined reference to `stop_MCLK'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(ChannelsDef.o): In function `channel_mi_clouds()':
C:/msys32/home/jorge/esp/Glo_v1/main/ChannelsDef.cpp:174: undefined reference to `init_i2s_and_gpio'
C:/msys32/home/jorge/esp/Glo_v1/main/ChannelsDef.cpp:176: undefined reference to `clouds_main(int)'
C:/msys32/home/jorge/esp/Glo_v1/main/ChannelsDef.cpp:181: undefined reference to `init_i2s_and_gpio'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z12channel_initiiiifiii+0x78): undefined reference to `REVERB_MIXING_GAIN_MUL'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z12channel_initiiiifiii+0x7c): undefined reference to `REVERB_MIXING_GAIN_DIV'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z12channel_initiiiifiii+0x84): undefined reference to `reverb_buffer'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z12channel_initiiiifiii+0x88): undefined reference to `reverb_buffer_ptr0'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z12channel_initiiiifiii+0x8c): undefined reference to `limiter_coeff'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z12channel_initiiiifiii+0x90): undefined reference to `play_button_cnt'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z12channel_initiiiifiii+0x98): undefined reference to `auto_power_off'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z12channel_initiiiifiii+0xa8): undefined reference to `error_blink'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z12channel_initiiiifiii+0xac): undefined reference to `get_tempo_by_BPM'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z12channel_initiiiifiii+0xb0): undefined reference to `get_delay_by_BPM'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z12channel_initiiiifiii+0xb4): undefined reference to `gecho_init_MIDI'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z14channel_deinitv+0x20): undefined reference to `short_press_button_play'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z14channel_deinitv+0x24): undefined reference to `long_press_button_play'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z14channel_deinitv+0x28): undefined reference to `event_channel_options'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z14channel_deinitv+0x30): undefined reference to `Filters::~Filters()'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o):(.literal._Z14channel_deinitv+0x34): undefined reference to `gecho_deinit_MIDI'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o): In function `channel_init(int, int, int, int, float, int, int, int)':
C:/msys32/home/jorge/esp/Glo_v1/main/InitChannels.cpp:155: undefined reference to `error_blink'
C:/msys32/home/jorge/esp/Glo_v1/main/InitChannels.cpp:258: undefined reference to `get_tempo_by_BPM'
C:/msys32/home/jorge/esp/Glo_v1/main/InitChannels.cpp:276: undefined reference to `get_delay_by_BPM'
C:/msys32/home/jorge/esp/Glo_v1/main/InitChannels.cpp:288: undefined reference to `gecho_init_MIDI'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(InitChannels.o): In function `channel_deinit()':
C:/msys32/home/jorge/esp/Glo_v1/main/InitChannels.cpp:291: undefined reference to `codec_set_mute'
C:/msys32/home/jorge/esp/Glo_v1/main/InitChannels.cpp:415: undefined reference to `Filters::~Filters()'
C:/msys32/home/jorge/esp/Glo_v1/main/InitChannels.cpp:474: undefined reference to `gecho_deinit_MIDI'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(Binaural.o): In function `binaural_program(void*)':
C:/msys32/home/jorge/esp/Glo_v1/main/Binaural.cpp:205: undefined reference to `Delay'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(Chaos.o):(.literal.shuffle_octaves+0x0): undefined reference to `random_value'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(Chaos.o):(.literal.shuffle_octaves+0x4): undefined reference to `new_random_value'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(Chaos.o):(.literal.get_music_from_noise+0x8): undefined reference to `fill_with_random_value'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(Chaos.o): In function `shuffle_octaves':
C:/msys32/home/jorge/esp/Glo_v1/main/Chaos.c:144: undefined reference to `new_random_value'
C:/msys32/home/jorge/esp/Glo_v1/build/main\libmain.a(Chaos.o): In function `get_music_from_noise':
C:/msys32/home/jorge/esp/Glo_v1/main/Chaos.c:75: undefined reference to `fill_with_random_value'
C:/msys32/home/jorge/esp/Glo_v1/main/Chaos.c:67: undefined reference to `new_random_value'
collect2.exe: error: ld returned 1 exit status
make: *** [C:/msys32/home/jorge/esp/esp-idf/make/project.mk:483: /home/jorge/esp/Glo_v1/build/app-template.elf] Error 1

I had to erase more than half of the console output because of the forums 2000 character limit, FYI.

What can I be missing?

Thank you Mario.

Jorge


5
Programming Questions / Re: Updating firmware on Glo
« Last post by mario on May 29, 2020, 08:40:25 AM »
Hi Jorge,

The first error is because some code has been added that refers to hardware that is not existing in Glo - here it is the 8 red LEDs. Lines like this should be wrapped in "#ifdef BOARD_GECHO" compiler directives.

The second error looks like the paths to libraries / includes are not set correctly, the CONSTANTS.h (included by soundGen.c) is referencing hw/init.h as if it existed under dkr directory but it is actually higher up, under main directory. It should be a simple fix to resolve these includes, however this is specific to your environment so I cannot help you here (and I am not familiar with Docker). You can download pre-configured toolchain and there is a tutorial how to set up everything in Eclipse (looks like there is similar for Linux too).

The links above are for previous version, latest one is here. ESP-IDF used GNU based build system then switched to CMake between versions 3 and 4, if you use the former then it will take includes as defined in component.mk files in each directory and should compile without problems. For the latter you'd need to convert these to CMakeLists.txt, however some effort will be needed sorting out code compatibility (a lot of functions in ESP-IDF framework deprecated over time and things were renamed), so it's a lot easier to just take an older branch, at the time I used this commit.

For Gecho branch I've recently migrated the code base to version 4 and CMake build, just haven't uploaded it yet neither revisited the old Glo code as that is a dead end now, we do not plan to make more of these. The Glo v2 circuit is radically different - if this was evolution of species, then it is a direct descendant of Gecho v2 rather than old Glo :) So I think for you it makes more sense to stick with version 3 of the framework and legacy build system, if you create any new code on top of the old code base, and later you'll want to run it on newer boards, it is trivial to port that bit over to updated code base, in compare to how complex migrating the Glo v1 firmware would be.

No worries, happy to help! 8) It took me a couple of days to set up my environment too, at least the documentation from Espressif is great and their forum is active too.

Cheers,
Mario
6
Programming Questions / Re: Updating firmware on Glo
« Last post by coutlasssupreme on May 28, 2020, 04:49:49 PM »
Hi Mario,

Changing directive for Glo and compiling the latest commit gives me this error:

Code: [Select]
root@ed9c825cd700:/usr/glo# make all
CC build/dkr/soundGen.o
/usr/glo/main/dkr/soundGen.c: In function 'dekrispator_make_sound':
/usr/glo/main/dkr/soundGen.c:843:4: error: implicit declaration of function 'LED_R8_set_byte' [-Werror=implicit-function-declaration]
    LED_R8_set_byte((fx_options&1?0x03:0)+(fx_options&2?0x18:0)+(fx_options&4?0xc0:0));
    ^
/usr/glo/main/dkr/soundGen.c:911:1: error: expected declaration or statement at end of input
 }
 ^
/usr/glo/main/dkr/soundGen.c:594:6: warning: unused variable 'options_indicator' [-Wunused-variable]
  int options_indicator = 0;
      ^
/usr/glo/main/dkr/soundGen.c:593:6: warning: unused variable 'options_menu' [-Wunused-variable]
  int options_menu = 0;
      ^
cc1: some warnings being treated as errors
/opt/esp/idf/make/component_wrapper.mk:285: recipe for target 'soundGen.o' failed
make[1]: *** [soundGen.o] Error 1
/opt/esp/idf/make/project.mk:467: recipe for target 'component-dkr-build' failed
make: *** [component-dkr-build] Error 2


Compiling from the Sep 28, 2019 commit(it already has the directive set to Glo) gives me this error:

Code: [Select]
CC build/console/argtable3/argtable3.o
CC build/console/split_argv.o
CC build/console/commands.o
AR build/console/libconsole.a
CXX build/cxx/cxx_guards.o
CXX build/cxx/cxx_exception_stubs.o
AR build/cxx/libcxx.a
CC build/dkr/minblep_tables.o
CC build/dkr/soundGen.o
In file included from /usr/glo/main/dkr/soundGen.h:27:0,
                 from /usr/glo/main/dkr/soundGen.c:29:
/usr/glo/main/dkr/CONSTANTS.h:12:21: fatal error: hw/init.h: No such file or directory
 #include <hw/init.h>
                     ^
compilation terminated.
/opt/esp/idf/make/component_wrapper.mk:285: recipe for target 'soundGen.o' failed
make[1]: *** [soundGen.o] Error 1
/opt/esp/idf/make/project.mk:467: recipe for target 'component-dkr-build' failed
make: *** [component-dkr-build] Error 2

I checked and the file is there.

I used the Dockerfile from the latest commit because this commit didn't have one, probably missing some references?

Great, great news about new boards! they look amazing. And I understand, it does sound like a better way of developing for variations.

As you can see I'm inexperienced with this language/flow. Thank you for your patience, Mario.

Jorge
7
Programming Questions / Re: Updating firmware on Glo
« Last post by mario on May 28, 2020, 12:12:22 PM »
Hi Jorge, almost there ;D

Quote
I can't seem to upload single partitions...

I think the reason is that the recent push to that repository is code that is set to compile for Gecho. There is directive in board.h that you need to change (uncomment "#define BOARD_WHALE" and comment out "#define BOARD_GECHO"). That's why it also results in larger binary and does not fit into the app partition.

I am not sure if it will still compile without problems immediately, alternatively you can get older commit (from Sep 28, 2019) to experiment with, but it is probably not a good idea to build new code on top of that old commit (as there might be fixes in common code here and there in the latter one, although untested with v1 Glo boards again). This might look weird but it is all done this way in order to make programming for further models easier (Glo v2, Loopstyler and possibly this mini piano), as they all will share the same code base.
8
Programming Questions / Re: Updating firmware on Glo
« Last post by coutlasssupreme on May 27, 2020, 11:32:32 PM »
Mario,

Great, I'm making progress. Thank you.

I can't seem to upload single partitions, if I only upload the app like this:
Code: [Select]
C:\Users\jorge\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\2.6.1/esptool.exe --chip esp32 --port COM7 --baud 921600 --before default_reset --after hard_reset write_flash -u --flash_mode dio --flash_freq 40m --flash_size detect 0x10000 C:\Users\jorge\Desktop\Jorge\MisCosas\GranularExamples\Glo\binaries\app-template.binI get:
Code: [Select]
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:4640
ho 0 tail 12 room 4
load:0x40078000,len:0
load:0x40078000,len:14180
entry 0x40078580
E (257) esp_image: Image length 633696 doesn't fit in partition length 524288
E (257) boot: Factory app partition is not bootable
E (259) boot: No bootable app partitions in the partition table
user code done

if I upload like this:
Code: [Select]
C:\Users\jorge\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\2.6.1/esptool.exe --chip esp32 --port COM7 --baud 921600 --before default_reset --after hard_reset write_flash -u --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 C:\Users\jorge\Desktop\Jorge\MisCosas\GranularExamples\Glo\binaries\bootloader.bin 0x10000 C:\Users\jorge\Desktop\Jorge\MisCosas\GranularExamples\Glo\binaries\app-template.bin 0x8000 C:\Users\jorge\Desktop\Jorge\MisCosas\GranularExamples\Glo\binaries\partitions_singleapp.bin
It's probably still missing something as it gives me this:

Code: [Select]
ets Jun  8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:4616
load:0x40078000,len:0
ho 12 tail 0 room 4
load:0x40078000,len:14180
entry 0x40078580
I (265) cpu_start: Pro cpu up.
I (265) cpu_start: Starting app cpu, entry point is 0x40081148
I (0) cpu_start: App cpu up.
I (268) heap_init: Initializing. RAM available for dynamic allocation:
I (275) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (281) heap_init: At 3FFDAC70 len 00005390 (20 KiB): DRAM
I (287) heap_init: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM
I (293) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (300) heap_init: At 4008BD68 len 00014298 (80 KiB): IRAM
I (306) cpu_start: Pro cpu start user code
I (100) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
codec_reset();
I2C Master Init... NORMAL MODE (400kHz) driver installed
Initialize TWDT
TWDT Deinitialized
sd_card_check(): SD Card init...
I (259) SD_test: Using SDMMC peripheral
sd_card_init(): speed = 20MHz
SD card test in 4-bit mode
sd_card_init(): mounting file system, free mem = 135328
I (266) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 
E (300) sdmmc_cmd: sdmmc_card_init: send_op_cond (1) returned 0x107
E (300) SD_test: Failed to initialize the card (263): unexpected error.
sd_card_check(): problem with SD Card Init, code=263
sd_card_check(): result = 0
LED_SIG (#18) direction set result = 0
IR_DRV1 (#19) direction set result = 0
IR_DRV2 (#23) direction set result = 0
GPI35 direction set result = 0
GPI35 pull mode set result = 0
gecho_sensors_init()
gecho_sensors_init(): starting process_sensors task
gecho_LED_expander_init()
process_sensors(): task running on core ID=1
gecho_LED_expander_init(): starting process_expanders task
process_expanders(): task running on core ID=1
esp_reset_reason() returned 1
service_menu()
service_menu(): BUTTON_RST_ON

So I'm probably missing some instruction to not delete the rest of the memory right?

Or I can also upload all the partitions?

Thank you for your time, Mario.

Jorge
9
Programming Questions / Re: Updating firmware on Glo
« Last post by mario on May 27, 2020, 09:29:37 PM »
Quote
So to understand correctly, the Glo cant be updated through its USB port?

Ah no it can, just not via any kind of automatic update program, neither there are any updates available or planned, like for Gecho.

Quote
I can get serial data when I listen on the port through USB, but I get this when I try the read_flash command:
A fatal error occurred: Failed to connect to ESP32: Invalid head of packet (0x72)

Sorry forgot to mention, in order to get the ESP32 into programming mode, you need to hold the middle (+) button, at least until the download starts. I hope the cause of the error was just this 8)
10
Programming Questions / Re: Updating firmware on Glo
« Last post by coutlasssupreme on May 27, 2020, 03:06:35 PM »
Hi Mario,

Thanks for the fast response.

So to understand correctly, the Glo cant be updated through its USB port?

I can get serial data when I listen on the port through USB, but I get this when I try the read_flash command:
A fatal error occurred: Failed to connect to ESP32: Invalid head of packet (0x72)

Pages: [1] 2 3 ... 10