The kuttyPy (/kʊtipʌɪ/) Microcontroller training utility allows real-time manipulation of the registers in microcontrollers via a connected computer containing its python library. setReg and getReg function calls act as a real-time debugging and monitoring utility, and combined with Python's visualization and analytical utilities, this approach has immense pedagogical potential for beginners.
The kuttyPy Plus hardware is an ATMEGA32 microcontroller development board developed by the ExpEYES project, and is currently supported by this software. It contains the kuttyPy firmware, but can also be used to run other programs via its bootloader.
py -3 -m pip install kuttypy kuttypy
pip3 install kuttypy kuttypy
Live User Interface with click-and-explore features
Active monitoring and control of each microcontroller pin. No compile+upload required
Direct Register level access, and tweaking tools
Monitoring utilities built into the bootloader. Compatible with Arduino IDE
16 On Board LEDs, and 1 RGB LED.
6 bit R2R DAC and 8 bit switch included
AUX port for I2C sensors
Upload your own compiled C code and use as a serial monitor!
Use it as a monitoring utility for your projects
8 Channel voltmeter, 0-5000 mV with 10-bit resolution
Analog Gauge Display and data logger!
Differential inputs with up to 200x gain
Select any register for reading/writing
Twiddle bits and observe the hardware's reaction
Set up Read/Write sequences and test response without compile/upload
Check out the ADC read sequence on the write.
Use the KuttyPy as a data acquisition board
Combine with powerful Python modules for data analysis and visualization
Plot 10-bit ADC values from up to 8 channels with just a few lines of code
In this demo, the ADC is read continuously and values are plotted using matplotlib
Acquire data from sensors for luminosity, humidity, acceleration, angular velocity etc. via I2C
Plug and play. No coding required
Automatically scan for connected sensors
View data on analog gauges or the data logger
Control I2C devices such as DACs ( shown in the video )
The KuttyPy monitor code is part of the bootloader.
This allows users to upload their own Hex files without losing the training utility features.
The user can switch back to the monitoring utility in a snap!
This example shows how to skip back and forth to an LED scanning code written in C and uploaded
Lots of example C code is shipped with the software
From simple codes for blinking LEDs, Reading ADCs, and operating PWM outputs
To stepper motor control, and persistence of vision displays.
Connect the hardware, and import the library. Import will throw an error if the hardware is not detected
from kuttyPy import * getReg('PINC') readADC(0)
To view the full list of ATMEGA32 registers
sudo apt-get install python3 python3-serial python3-pyqt5 python3-pyqt5.qtsvg
git clone https://github.com/csparkresearch/kuttypy-gui cd kuttypy-gui python3 KuttyPyGUI.py
Developed by Jithin B.P @CSpark Research, 2018.
Special thanks to Georges Khazanadar for Debianizing efforts.