DonglePi is a device that gives you a Raspberry Pi P1 compatible connector for your PC.
P1 is a connector with:
- GPIO
- I2C
- SPI
- Serial
- PWM
More info about the connector
On the software side, it exposes APIs that are compatible with the ones used by the raspberry pi like GPIO and smbus under python.
With DonglePi:
- you can use your PC or Mac to directly develop & debug your RPi embedded applications (with an IDE for example)
- you can use devices made for the Raspberry Pi ecosystem on your PC
DonglePi can also be used to easily setup students for an embedded development course in a preexisting computer lab.
It is a prototype working on a breadboard. The goal is to make a PCB like the one above.
On the software side:
- GPIOs are working.
- I2C is working.
- SPI is almost done.
- PWM needs to be done.
It can be plugged on any USB2 port.
You can build a prototype on a breadboard using an Atmel SAMD21 development board. I recommend this one
For the RPi connector, you can use a Pi cobbler kit from adafruit.
Get the asf sdk It needs to be linked to the asf directory in the root of the project (by default it looks for the latest version in your home directory).
Sync the submodule:
git submodule update --init firmware/nanopb
Install google protobuf:
pip install -user protobuf #(or under arch for example) sudo pacman -S protobuf python2-protobuf
Install gcc for arm bare metal:
sudo pacman -S arm-none-eabi-gcc
https://launchpad.net/gcc-arm-embedded/+download
Install pyserial: pip install pyserial
From the firmware: make
It will produce a flash.bin file.
If you have the recommanded dev board, connect it on USB, press Reset + Button B. It will appear as a standard USB storage device. The red led from the board should slowly blink. Copy flash.bin to the root of it. Unmount the disk. Reset it, the led should switch to solid red = it has correctly initialized and wait for commands.
From the python directory: make
This should generate some files from tht protobuf so the bindings could talk to the hardware.
Here you have a test.py showing how to use the bindings.
Any contribution is welcomed ! If you want to contribute some code, feel free to open a pull request. If you have some experience developing PCBs, feel free to contribute to the Eagle project.
DonglePi is released under a dual license. It is GPL for educational and personal use.
It is under a commercial license if you want to produce it and sell it. The money would be reused to develop the v2 of the product under the same dual license. Contact me if you are interested to produce it: gbin@gootz.net