Replies: 7 comments 131 replies
-
Beta Was this translation helpful? Give feedback.
-
For the ESP32 power supply I do not want to take any risk and use the same AMS1117 as the development boards typically use. For the low noise power supply for the ADC bias, I use the MCP1754S: Since the ADC bias network only needs about 2 mA of current, we could additionally add a resistor in front of the regulator to create a low-pass filter with a low cut-off frequency. But I am not sure if that is required. Any comments on that? |
Beta Was this translation helpful? Give feedback.
-
I fixed my kicad libraries by uninstalling kicad, deleting all the kicad files under .config and .local, and then reinstalling kicad. Then it prompted me to copy the libraries. I guess it was picking up an old kicad 5 config or something. Unfortunately the grid has changed in kicad. None of the grid settings are lining up with any of the component centres that I previously placed. Reverting to the repository version of the project hasn't fixed it. I'm surprised this isn't stored with the pcb file. Can you tell me what your grid settings are? It's under View->Grid Properties. What's strange is that even if I move through the different grid options, none of the component centres land on a grid. So maybe the grid origin is not right? If I set the grid to 0.250 in then the horizontal spacing looks right for the pi header. But the grid is not vertically centred in the holes. Is your grid origin not 0? What was the first thing you placed? I can make an educated guess, but I don't want to break anything. Btw the holes at the four corners of the board are circles drawn on the board outline (edge cuts) layer. That is weird. Why not use a mounting hole? |
Beta Was this translation helpful? Give feedback.
-
What I'd really like to see is an I2C port (for an OLED display) and a rotary encoder with push button using a Schmitt trigger circuit (74HC14N), e.g: This would make it possible to create a basic interface for the various Edrumulus parameters (which I'd happily work on and do a proof of concept in a pull request). https://github.com/madhephaestus/ESP32Encoder is a very reliable rotary encoder library for this because it uses "the ESP32 pulse counter hardware peripheral". Or is this something a separate esp32 device should be used for, due to processing power constraints etc |
Beta Was this translation helpful? Give feedback.
-
@jstma I want to support a prototype board identification which is based on GPIO states. That way the software can auto detect the type of prototype board it is running on and configuring the pad-to-GPIO assignments automatically. Therefore I need to make slight modifications to your prototype 5: I need to switch the LED GPIO from IO5 to IO21 and I need to connect IO 5, 18, 19, 22 and 23 to GND: I have done the change to the schematics: I think I could also do the changes to the PCB layout but I do not want to destroy anything of what you have created. Could you assist me with that? |
Beta Was this translation helpful? Give feedback.
-
@corrados I'm wondering how you've made out with the prototypes, in general. Are you using Prototype 5 at all? I was also thinking about the ESP32-S3. I saw it mentioned in another discussion. This has a bluetooth radio and it would be good to know if Prototype 5 was quiet because it omitted the bluetooth antenna. |
Beta Was this translation helpful? Give feedback.
-
Vision
The vision of Edrumulus prototype 5 is to develop a complete open hardware/open source e-drum module which works without the need of installing any development software like the Adruino IDE to flash the ESP32.
Hardware Milestones
Hardware
The base hardware is a Raspberry Pi 4 (8 GB) which runs Drumgizmo and a script to drive an LCD display and manages some hardware buttons. For the audio output, either a HifiBerry or similar hat can be used or an external USB audio card. On top of that, the Edrumulus hat is stacked. To be able to stack the display/button hat on top of that, no ESP32 developer board is used but a ESP32-WROOM-32UE component and also an angled DB25 trigger connector.
A separate 3.3 V power supply and some more capacitors shall be used to isolate the voltage dividers for the ADCs bias from the noisy ESP32 3.3 V branch. This is to reduce the ADC noise and spikes of the ESP32.
Maybe hard wire some (maybe three) ESP32 GPIO ports to a defined high/low sequence to be able to identify the prototype in the Edrumulus firmware.
Recommendations for the hardware design:
Software
A Python script shall manage the LCD and hardware buttons. It shall also automatically flash the ESP32 module with the current Edrumulus firmware via UART serial communication.
If possible, an iso image for an SD card shall be generated which has the Python script, the Drumgizmo software, some Drumgizmo drum kits and the ESP32 firmware included so that a user of this prototype simply flashes that iso image on his SD card, plugs it in the Raspberry Pi and everything is automatically set up.
Challenges
A power supply for the ESP32-WROOM-32UE must be developed. Maybe try to reduce the 3.3 V noise as much as possible to further reduce the ADC noise. The separate power supply for the ADC bias must have very low noise. Since the current drawn by the network is low, it should be fairly easy to fulfill this task.
The ESP32-WROOM-32UE needs to be flashed via UART by using a defined GPIO high/low sequence. The idea is to connect these ESP32 GPIOs to some Raspberry Pi GPIOs so that the Python script is able to control the flashing correctly using the Espressif flash tool and a firmware binary generated from an official Edrumulus release.
We want to support two more trigger inputs compared to the previous prototype 4. This together with the additional capacitors will make it challenging to place and route all components on the PCB. To make it easier, both sides of the PCB shall be used to place components and the component size shall be smaller.
Remote debugging
Since there is no USB connection to the ESP32 anymore, we need a way to stream the debug outputs from the Raspberry Pi to a remote Linux PC. This is one possibility:
On the Raspberry Pi:
stty 115200 -F /dev/serial0
On the remote Linux:
ssh -t -t pi@[IP address] tail -f /dev/serial0 > test.txt
x=load('test.txt','-ascii');figure;plot(x)
Beta Was this translation helpful? Give feedback.
All reactions