@diyelectromusic@mastodon.social
@diyelectromusic@mastodon.social avatar

diyelectromusic

@diyelectromusic@mastodon.social

Simple DIY electronic music projects - #Arduino, #RaspberryPi #MIDI, #synthdiy, where music and #STEM overlap. Home of the #LoFiOrchestra and follower of #MakersHour.

Blog: https://diyelectromusic.wordpress.com/@diyelectromusic.wordpress.com

Videos: https://makertube.net/accounts/diyelectromusic

This profile is from a federated server and may be incomplete. Browse more on the original instance.

diyelectromusic, to random
@diyelectromusic@mastodon.social avatar

I have my ESP32 hacked, modular, educational, thing making noises!

It's a bit noisy, and I'm still messing around with the code (no MIDI yet, and not sure how I want to combine the two oscillators if at all), but the basic features seem to be working.

The key aims were cheap, DIY buildable, knobs and wires, link to breadboards, but still gets over some basic concepts of analog synthesis...

Quality or reliability of output was never a goal ;)

https://makertube.net/w/ke5t911VHa5yP7MaaXM1X1

zeh, to random
@zeh@mastodon.gamedev.place avatar

This WonderMark hits hard in the creative feels https://wondermark.com/c/1548/

diyelectromusic,
@diyelectromusic@mastodon.social avatar

cc

I can't help thinking this relates to some of our questions from time to time :)

gsuberland, to random
@gsuberland@chaos.social avatar

you ever do that thing where there's some property or behaviour you're generally aware of but generally just ignore as not being particularly consequential, and then you design something where that property is a limiting factor, so you study it in a lot of detail and then become cursed with the knowledge that you really should be accounting for it pretty much everywhere

diyelectromusic,
@diyelectromusic@mastodon.social avatar

@gsuberland "While I'm still confused and uncertain, it's on a much higher plane, d'you see, and at least I know I'm bewildered about the really fundamental and important facts of the universe."
"I hadn't looked at it like that, but you're absolutely right. He's really pushed back the boundaries of ignorance."
"They both savoured the strange warm glow of being much more ignorant than ordinary people, who were only ignorant of ordinary things."
-- Terry Pratchett

diyelectromusic, to random
@diyelectromusic@mastodon.social avatar

Wow - that's a lot of bits (at least for me) :)

Finally going to start soldering up one of my pcbs...

diyelectromusic,
@diyelectromusic@mastodon.social avatar

Ok, well I've no idea if it is actually going to do what I want it to, but it certainly looks the part...

Approx 2.5 hours to assemble - not too bad.

I'm not even going to test the basics right now though - that can wait until tomorrow :)

Photo of the populated PCB now with the front panel resting on the top showing the pots and connection points poking through. The panel is labelled in 6 sections: VCO 1 and VCO 2 at the top, then LFO and VCA then two sections at the bottom EG 1 and EG 2.

diyelectromusic,
@diyelectromusic@mastodon.social avatar

@davidr That's the plan, but as it's an ESP32, it will only have a small range of just over 3 octaves. I toyed with the idea of scaling down a 0-5V range, but then decided I wanted the internal voltages to be real 1V/oct signals so I stuck with 0-3V3.

It isn't really designed to be integrated with anything else as such, but there is some (very limited) protection - based on things I've found online rather than any real understanding on my part (see my design blog post for details).

diyelectromusic,
@diyelectromusic@mastodon.social avatar

@bytex64 Well, looking at them might be all I'll end up doing yet - I still need to finish the code (assuming the board actually works)

diyelectromusic,
@diyelectromusic@mastodon.social avatar

Ok, so first major ramification of ignorance is forgetting that the ESP32 has Strapping pins - GPIOs that are internally pulled high or low on boot.

I've managed to choose three of them for my genuine analog inputs - whoops!

I think I can work around it, but it does mean that the pulldown resistors in my CV circuit aren't really working properly.

Any thoughts?

This the circuit - so what would an internal ~45K pullup/down add to this - should I just go for a stronger external pull-down?

diyelectromusic, (edited )
@diyelectromusic@mastodon.social avatar

Also, weirdly, although the docs imply they are pulled high or low on boot and suggests that this is only a temporary situation...

... I'm not convinced that is the case.

I think part of the issue is not knowing what the chip does, what the ESP32 module does under the "can" and what the DevKit itself does.

Anyone know anything about the Strapping pins? I'm not finding much Internet wisdom out there beyond what is already in the data sheets and this post: https://randomnerdtutorials.com/esp32-pinout-reference-gpios/

diyelectromusic, (edited )
@diyelectromusic@mastodon.social avatar

@eliasrm yes, I think I'll be ok on the boot front, but it is messing with my analog readings. I thought the pullup/down could be disabled in code, but so far I've not had anything work I think...

There was something about a silicon bug in the ESP32 meaning that they could only be enabled/disabled by using the rtc GPIO, but I tried that and it didn't seem to have an effect.

I need to do some proper controlled testing to see what is going on.

diyelectromusic,
@diyelectromusic@mastodon.social avatar

@eliasrm Yes, I read about the recommendation after getting my board back ;)

Maybe in V2 then!

diyelectromusic,
@diyelectromusic@mastodon.social avatar

Ok, so apart from the strapping pin issue which affects the three CV inputs, everything else appears to be working ok so far...

Now I need to get on and finish the firmware to join it all up! :)

diyelectromusic,
@diyelectromusic@mastodon.social avatar

@eliasrm Yes thanks - I did do some initial tests, but wasn't sure it was actually doing anything. I need to have a proper look and do some dedicated tests so I understand what is going on!

diyelectromusic,
@diyelectromusic@mastodon.social avatar

Turns out that the internal pullup/down resistors, whilst persisting into running code, do get disabled within the analogRead() mechanisms (despite what gpio_dump_io_configuration will tell you!), so I don't need to think about that once everything is up and running.

If you want to know the state of the pullups for a dual RTC/GPIO pad, you have to read the RTC status regs directly, not GPIO, as well as using the config regs.

This means that any spurious results now are down to my circuits :)

diyelectromusic,
@diyelectromusic@mastodon.social avatar

@eliasrm Ok I think I understand what is going on... and I think all the code/ESP32 side is now known.

Any residual readings must just be noise on the lines I think.

Lots of gory details in this post here: https://emalliab.wordpress.com/2024/05/20/esp32-strapping-pins/

diyelectromusic, to random
@diyelectromusic@mastodon.social avatar

Kind of logged in and expected to see trending this morning...

thompsondt, to rust
@thompsondt@mastodon.social avatar

@diyelectromusic, since you're into embedded tech and microcontrollers, you may appreciate this one.

It's a Real-time Operating System kernel I wrote in C and Assembly for AVR chips. My intent was to learn about how operating systems interface with hardware.

I'd like to rewrite it with #Rust and finish the task scheduler.

https://gitlab.com/thompsondt/simplicity

#rustlang #Atmel #arduino #maker #embedded

diyelectromusic,
@diyelectromusic@mastodon.social avatar

@thompsondt Oh good for you! I've always wondered about doing something like that but not sure I'll ever get round to it :)

The ESP32 seems to build-in FreeRTOS and that provides the multicore/multitasking capabilities at the moment, but that always seemed a bit OTT to me.

I've never experimented with it on AVR.

And "just because" is always the best reasons IMO!

diyelectromusic,
@diyelectromusic@mastodon.social avatar

@thompsondt You mean there is a discipline for using git!? That magic knowledge continues to elude me...

diyelectromusic, to SynthDIY
@diyelectromusic@mastodon.social avatar

I've started writing up my thoughts, design, and development thinking for an ESP32 based sort-of-educational pseudo-analog synth toy/hack/plaything meant to be used with a breadboard for extras.

I'm probably tempting fate by posting about it at this point, but I had several posts in draft so thought I'd hit "go" on them anyway.

When I get the actual boards back, if the posts all suddenly disappear, you'll know it was a bit of a disaster!

https://diyelectromusic.wordpress.com/2024/05/07/educational-diy-synth-thing/

#WorkInProgress #WIP #SynthDIY

diyelectromusic,
@diyelectromusic@mastodon.social avatar

Boards have arrived. Not sure when I'll get a chance to build one mind... :)

Watch this space.

diyelectromusic,
@diyelectromusic@mastodon.social avatar

@poetaster I'll savour the moment :)

Nah, seriously I don't want to make a mistake and have quite a lot on atm. Also there is the small matter of the patch board that is about a week behind and a couple of parts still in the post!

diyelectromusic,
@diyelectromusic@mastodon.social avatar

The build guide is now up. Apart from the (ok, somewhat major and definitely annoying, but probably work-around-able) issue with the strapping pins, hardware wise all the bits seem to function.

https://diyelectromusic.wordpress.com/2024/05/19/esp32-wroom-educational-modular-synth-thing-pcb-design-build-guide/

diyelectromusic, to RaspberryPi
@diyelectromusic@mastodon.social avatar

I appear to have MiniDexed (and circle) supporting ST7789 displays now, which means I can use a Pimoroni Pirate Audio with MiniDexed!

If you only need USB MIDI this is about as simple an option as it will be possible to have.

It would be a particularly neat, self-contained Pi Zero USB Gadget...

#Pimoroni #MiniDexed #RaspberryPi

diyelectromusic,
@diyelectromusic@mastodon.social avatar

Oh that's a bit annoying...

Does that look like a hardware fault to you? It gets worse with pressure on the bottom left corner of the display (near the "B" button) :/

hmm.

diyelectromusic,
@diyelectromusic@mastodon.social avatar

@gadgetoid I've had it a while, but the first time I was using it was this weekend and has been fine for a couple of days use.

If I get a mo, I'll try to get a stock setup installed somehow, but I don't have a spare SD/image to hand straight away...

I guess the question really is could software do that? It's not really the kind of thing I'd expect software to be able to do...

The existing circle C++ driver looks based on the Pimoroni python lib - I was only adding stuff on top.

diyelectromusic,
@diyelectromusic@mastodon.social avatar

@gadgetoid ha - thanks - no worries.

I think I might have an alternative Arduino st7789 around somewhere... I'll see what I can find! :)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • kavyap
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • osvaldo12
  • khanakhh
  • Youngstown
  • mdbf
  • slotface
  • rosin
  • everett
  • ngwrru68w68
  • Durango
  • anitta
  • InstantRegret
  • GTA5RPClips
  • cubers
  • ethstaker
  • normalnudes
  • tacticalgear
  • cisconetworking
  • tester
  • Leos
  • modclub
  • megavids
  • provamag3
  • lostlight
  • All magazines