Coder Social home page Coder Social logo

jrnelson90 / tinderboxpedal Goto Github PK

View Code? Open in Web Editor NEW
72.0 25.0 11.0 5.77 MB

Bluetooth "Universal Remote" Footpedal for Digital Guitar Amps, on ESP32 or Pi Zero W

License: Apache License 2.0

Python 7.62% Shell 0.10% C 89.46% C++ 2.83%
raspberry-pi digital-guitar-amps esp32 arduino-core python trs guitar bass diy iot

tinderboxpedal's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tinderboxpedal's Issues

Not an issue but a question.

How did you get the bluetooth codes for the different buttons and is there more code that could be used for different functions?

Oled Display doesn't work

Hi there! Such a great job you are doing here. I really appreciate it.
I am just starting on arduino and I am really bad at it. I am just an Electrician.
The issue I have is about the Oled Display. The switch foot works great but the screen does not do enything.
I've checked the librery and all is ok.
Olso I checked the Oled Display with the Elegoo Uno R3 board and it works fine.

The board I have is from AZ-Delivery and the modell is ESP32-WROOM-32

The screen is too from AZ-Delivery and the modell is Oled Display I2C 128X64

I don't know what else to try.
I'll aprreciate any sugestion.

Thank you so much.

Minor possible issue

Just a quick one Justin - This is great work!.
Looks like your electrical schematic has the buttons going sequentially from bottom to top 1-4?
Button 1 and 2 look ok, but buttons 3 & 4 seem to be going to the wrong pins according to you GPIO assigment on Tinderbox.py (assuming the schematic buttons are drawn from 1 to 4 sequentially upwards)
Button 3 goes to 19 / button 4 goes to 26
This could cause confusion, with button 3 operating preset 4 and visa versa - easily fixed with labelling the schematic buttons?

ESP32 BT Connectivity with Arduino-Core

Unlike the Pi version based on the PyBluez stack, the Arduino-Core BT stack will intermittently disconnect from the Spark after periods of disuse. A callback on disconnect currently calls a the connection method to compensate for this, but it would be better if this could be fix with a ping message short term, and better Bluetooth connection code long term,

Schematic errors

Hi all, I found the same two errors as others have in the schematic. Buttons 3 and 4 transposed and SCL needs to be on GPIO22 as is standard. I hope the schematic is updated one day.

May I ask how do you find out these command code?

Hi Justin, thanks for your excellent work. May I ask how do you find out these command codes?

TONE_1 = "01fe000053fe1a000000000000000000f00124000138000000f779"
TONE_2 = "01fe000053fe1a000000000000000000f00123010138000001f779"
TONE_3 = "01fe000053fe1a000000000000000000f00125020138000002f779"
TONE_4 = "01fe000053fe1a000000000000000000f00120030138000003f779"

Pi Boot Up Time

45 seconds on a Pi Zero is much longer than the near instant bootup of the ESP32 version. While complete match in startup performance should not be expected, minimizing this disparity via scripts or a custom light image would be a great improvement.

Not issue - but this might be helpful for Spark traffic sniffing

Hi Justin
Very impressed with what you and team have done here!!

I haven't tried Wireshark, but wrote this for an ESP32 board (M5Stack Core2) to appear to the Spark app as the amp and record the traffic sent to the amp and show it on the Serial Monitor (in the Arduino program).

Next step is to send this over wifi to something connected to the actual amp (via bluetooth) and capture the return traffic - I've started on that using a Pi 400.

Only works with Android - I think iPhone must use BLE not bluetooth serial?

https://github.com/paulhamsh/SparkSpoofer/blob/main/Spark_Server_Core_3_SerialOnly.ino

Paul

Start on Boot question

Have you find a way to make the script to run at boot on a raspberry?
i tried all sort of way but did not ended up as expected

Update on bluetooth data structure

Hi
I am working on decoding the data format to add to the amazing work above. I think the key is the 8th byte in the sequence - so I've created this addition to the description you have created.
I am still working through how this works but think it all relies on the 8th byte, and that data is not prefixed by a type indicator.
I hope this helps.

`

Body structure

The body of the message made of sequences of 8 bytes - 7 bytes of data and 'format' byte.
Arguments are sequential in the data sequence and the format byte shows where new a new argument starts.
Each bit maps to a byte in the next sequence, and if the bit is set in the format byte then that byte in the sequence is the start of a new data element.
Strings have their length as their first byte (stored as 0x20 + length).

An example is shown below, with each new data sequence on a new line. The bit expansion is the 8th byte with the bits reversed, to show where the new sequence starts:

    D1 D2 D3 D4   D5 D6 D7         F1    Bit expansion of F1
    xx xx xx xx   xx xx xx         02    0100 000x
    xx 
       2b 52 6f   79 61 62         40    0000 001x
    20 43 72 6f   77 6e 
                        23         08    0001 000x
    30 2e 37 
             27   31 2d 43         10    0000 100x
    6c 65 61 6e   
                  28 69 63         40    0000 001x
    6f 63 2e 70   6e 67 
                        4a         32    0100 110x
    42 
       70 00 00   
                  17 
                     2e 62         00    0000 000x
    69 61 73 2e   6e 6f 69         40    0000 001x
    73 65 67 61   74 65 
                        xx         xx    xxxx xxxx

Which translates to:
String: Royal Crown
String: 0.7
String: 1-Clean
String: icon.png
???: 4a 42
???: 70 00 00
???: 17
String: .bias.noisegate

It appears that strings are the only variable length data sequence and the only sequence that starts with a length
`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.