Showroom for MicroPython related hardware projects.
Target audience: Users wanting to show off their project!
Post Reply
Posts: 144
Joined: Sun Mar 01, 2015 12:10 pm


Post by gratefulfrog » Wed Nov 04, 2015 9:23 am

Hello Micropython World!

After months and even years of work, I finally have a working PCB for my PyGuitar (formely ArduGuitar circuit!) !

Check out this video !

To understand the project, you can look at the video of my presentation at 30C3.

You can also check out the website, but I fear that the server is down...

Finally, you can read about the project in the Project Log!

Don't hesitate to contact me for any further info!


Posts: 348
Joined: Fri May 02, 2014 3:43 pm
Location: Massachusetts, USA

Re: PyGuitar

Post by blmorris » Wed Nov 04, 2015 6:45 pm

Hey Bob- Very cool project, thanks for sharing with us!
And now I understand the context of your other questions here; it's great to see it all come together like that. Sounds great too!


Posts: 144
Joined: Sun Mar 01, 2015 12:10 pm

Re: PyGuitar

Post by gratefulfrog » Fri Jun 10, 2016 8:33 pm

There has been some, I mean TONS of progress since I last posted.

The PyGuitar project is now at the integration stage.

Thanks to many of the people on this forum, I now have pretty much the entire system operational.

This video shows the first integration tests.

What you will see is:
  • The main PyGuitar circuit with the pyboard integrated into it,
  • The guitar testbed with the 2 humbucker pickups connected to the circuit,
  • the various HMI support pcbs all connected to the main circuit,
  • the HMI emulator, running in the envt. on a pc, connected to the pyboard by USB, driving the entire system!
The emulator provides the hardware components of the HMI:
  • tactile pushbuttons,
  • LCD screen,
  • trackball,
  • foil-potentiometers (generously provided by Hoffmann + Krippner),
  • LEDs.
It is developed in python, using the graphics envt. as support for the GUI. It communicates with the pyboard by the utility found in the tools directory of the micropython repo on GitHub.

It provides queuing for interrupt driven HW components, since the physical devices will work that way. So don't be fooled when you see the LEDs and the guitar functionality change, there has been:
  • asynchronous en-queuing of task codes
  • de-queuing and interpretation of the codes,
  • generation of sequences of function calls
  • and finally spi emissions to the 19 daisy-chained shift-registers which control the outputs.
So there's a lot more going on than just LEDs blinking ;-)

The code is all here in github.

The documentation is here.

For those of you who wonder how the envt. communicates with the pyboard, check out the code and let me know if you want to know more. I didn't write any code to do it, just used and a file that I found that provides "a wrapper around processing.serial.Serial to provide a PySerial.Serial like interface to a serial port." Developing in this manner goes really fast because hardware and software issues can be handled separately, and thus the complexity is controlled. Interacting HW/SW or SW/HW defects are minimized.

More news will follow as I develop the final fully operational stand alone hardware for the guitar!

Thanks to all of you who helped me in my struggles to get here!


Post Reply