Got my 6 RoboPi boards in the mail yesterday. Nice packaging, boards look nice also. I'll download the instructions and put one together this weekend if the wife doesn't pull me away for HoneyDo items. Looking forward to trying these out, networking them will be the next big challenge.
Here is another suggestion for the next revision of your manual. Under the "Testing" section you suggest checking for shorts between various pins on the Pi header but I don't see any definition of the pins on that header. I guess I can go to the RaspPi forum but it would be nice if it was in your manual to allow testing without doing a web search.
What is the recommended way of powering the RoboPi if you want to use it in standalone mode with a PropPlug?
I use one of those "USB Power Banks" that provide a regulated 5V output. Just grab a USB cable, and cut it in half.
Strip the four leads on the half with the "A" (male, flat) connector.
Identify GND and 5V (probably red and black, but a voltmeter can tell you, or you can check for continuity with the USB A connectors 5V and GND pads)
1) If you are not planning on mounting RoboPi on a Pi in the future
a) You can solder +5 and GND to the +5 (either of pin 2 / pin 4) and GND (pin 6) of the Pi connector
b) You can add another screw terminal by soldering it into pin 2 & pin 6 (+5 and GND respectively)
2) If you might want to mount it on a Pi later
- solder in the Pi stacking connector
a) use a 3 pin male header, pull out the middle pin, insert the header, solder the +5V to the short end of the inserted header at Pi pin 2, and the GND at Pi pin 6
b) solder the 5V wire close to the connector on stacking pin 2, and GND close to the connector on stacking pin 6
Very good question, I will add the above instructions to the assembly manual.
Here is another suggestion for the next revision of your manual. Under the "Testing" section you suggest checking for shorts between various pins on the Pi header but I don't see any definition of the pins on that header. I guess I can go to the RaspPi forum but it would be nice if it was in your manual to allow testing without doing a web search.
Excellent suggestion, it will be in the next rev of the manual. Don't know why I did not think of that!
Please keep letting me know how your RoboPi journey goes!
I am planning to release RoboPiLib for the Pi side later today, along with a new user manual revision that documents it.
I use one of those "USB Power Banks" that provide a regulated 5V output. Just grab a USB cable, and cut it in half.
Strip the four leads on the half with the "A" (male, flat) connector.
Identify GND and 5V (probably red and black, but a voltmeter can tell you, or you can check for continuity with the USB A connectors 5V and GND pads)
1) If you are not planning on mounting RoboPi on a Pi in the future
a) You can solder +5 and GND to the +5 (either of pin 2 / pin 4) and GND (pin 6) of the Pi connector
b) You can add another screw terminal by soldering it into pin 2 & pin 6 (+5 and GND respectively)
2) If you might want to mount it on a Pi later
- solder in the Pi stacking connector
a) use a 3 pin male header, pull out the middle pin, insert the header, solder the +5V to the short end of the inserted header at Pi pin 2, and the GND at Pi pin 6
b) solder the 5V wire close to the connector on stacking pin 2, and GND close to the connector on stacking pin 6
Very good question, I will add the above instructions to the assembly manual.
Excellent suggestion, it will be in the next rev of the manual. Don't know why I did not think of that!
Please keep letting me know how your RoboPi journey goes!
I am planning to release RoboPiLib for the Pi side later today, along with a new user manual revision that documents it.
Sounds like too much work to me!
Maybe I'll just plug it into the Pi and hope for the best. :-)
I tried inverting it and that didn't work either. Also, I really wanted the nuts on the top so they don't stick out so far underneath the Pi board since that is on the bottom of my stack.
I didn't find any shorts so I plugged it into the Pi and powered up the stack. I didn't see any blue smoke and the green LED on the RoboPi came on and the Pi booted. I'm logged in now. I guess I should try installing your software to test the RoboPi to see if its working.
I am in the process of cleaning up RoboPiLib.c, but I can email RoboPiLib.o and RoboPiLib.h to you before its on the web site. You can also grab the eeprom image from the web page, or follow the previous PropGCC on Pi thread, with the propeller_load3 version that can program the Prop from the Pi.
I have to run an errand in about half an hour, but should be back soon after that.
If you can't find the working propeller_load, I'll grab the binary off my one of my Pi's and email it to you.
I didn't find any shorts so I plugged it into the Pi and powered up the stack. I didn't see any blue smoke and the green LED on the RoboPi came on and the Pi booted. I'm logged in now. I guess I should try installing your software to test the RoboPi to see if its working.
I am in the process of cleaning up RoboPiLib.c, but I can email RoboPiLib.o and RoboPiLib.h to you before its on the web site. You can also grab the eeprom image from the web page, or follow the previous PropGCC on Pi thread, with the propeller_load3 version that can program the Prop from the Pi.
I have to run an errand in about half an hour, but should be back soon after that.
If you can't find the working propeller_load, I'll grab the binary off my one of my Pi's and email it to you.
I may be mis-remembering the file name, it was a version patched about a year ago by Heater that works, resets prop via GPIO #17
As the Pi serial port does not bring out RTS or DTR to the main header, a gpio must be pulsed low to reset the prop, and #17 is what people tend to use.
I started on a new one a little while ago. Sources are here: https://github.com/ZiCog/pi-propeller-load I got the GPIO reset code in there but never did get around to testing it. Me and my Pi's don't meet up very often. I should get more.
Now I'm not sure that those github sources are taken from the correct branch of propgcc and they might be getting out of date by now as well.
What would be the best base loader code to start from now?
Sounds like a plan David, I'll have another look at that soon. Won't be this week though I'm off to Amsterdam for a trade expo.
Looks to me as though I could just adopt your version of osint_linux.c along with a few friends and it might work. Did you change anything other than the GPIO reset?
I was wondering if you would like my mods or not. I seem to remember I changed the RTS/DTR selection from a boolean to an emum that included GPIO. That change percolates up from osint.
In my original version a year ago, somehow I lost the code, I did some regexp comparisons on the serial port device such that /dev/ttyAMA0 would get the GPIO reset. The idea being that even on the Pi you might want to program via normal USB serial ports as well so a special ifdef build is not satisfactory.
I was wondering if you would like my mods or not. I seem to remember I changed the RTS/DTR selection from a boolean to an emum that included GPIO. That change percolates up from osint.
In my original version a year ago, somehow I lost the code, I did some regexp comparisons on the serial port device such that /dev/ttyAMA0 would get the GPIO reset. The idea being that even on the Pi you might want to program via normal USB serial ports as well so a special ifdef build is not satisfactory.
I saw what you did in propeller-load and it looks fine to me other than a minor typo:
You have this:
if (use_reset_method ("value"))
{
printf("error: no reset type '%s'\n", value);
return 1;
}
But I think you meant this:
if (use_reset_method (value))
{
printf("error: no reset type '%s'\n", value);
return 1;
}
Comments
I have released the initial version of:
- RoboPi Spin API Object
- RoboPi Firmware
The API supports:
24 digital I/O pins, each of which can be configured as
- digital input
- digital output
- servo output
- pwm output
8 analog inputs
- may also be treated as digital inputs 24-31
You can find the files at the RoboPi web page:
http://www.mikronauts.com/raspberry-pi/robopi/
RoboPi v0.71-bst-archive-140313-142734.zip
Spin archive of the RoboPi API Object and the RoboPi serial firmware, with required Obex files.
RoboPi EEPROM Images.zip
RoboPi firmware eeprom images, both 100Mhz and 80Mhz versions are in the zip archive.
The firmware is configured for 115200bps, 8N1
Next:
1) I am cleaning up the RoboPi C API for communicating with the RoboPi firmware, the release of the firmware is imminent (one or two days)
2) I am re-writing the diagnostic to use the RoboPi API, and will produce a "native" propeller Spin version, and a C version for the Raspberry Pi.
3) After that, I will start releasing demos, application notes, and the user manual.
4) I plan to add more functionality to the API to make RoboPi a very smart board indeed...
5) The API and serial comms will be improved over time
Bug reports, documentation errors, and suggestions should be posted to this thread.
Very weird, as when I opened the zip, it showed the correct file sizes - but they open as zero length.
Thanks for the heads up!
Then I downloaded it, and checked that the Spin files were ok.
I forgot to remove the obsolete servoAttach() and servoDetach() methods, so I'll be uploading a new version RSN
I'm having a lot of fun with Pi+RoboPi ... I've built two bots based on that combination so far.
The user manual is up to v0.30, with any luck, I'll be able to post a pre-release version on my site by monday.
Please don't hesitate to ask if you have any questions.
Meanwhile, here is a photo of one of my RoboPi testbeds
(Click on thumbnail for larger image)
I used it to verify driving gear motors with PWM via a small dual h-bridge board.
http://www.mikronauts.com/raspberry-pi/robopi/
Your feedback is appreciated!
p.s.
The manual is NOT complete, I still have to add some more examples, etc., but it is enough to get started with.
I plan on uploading RoboPiLib.zip later today.
I use one of those "USB Power Banks" that provide a regulated 5V output. Just grab a USB cable, and cut it in half.
Strip the four leads on the half with the "A" (male, flat) connector.
Identify GND and 5V (probably red and black, but a voltmeter can tell you, or you can check for continuity with the USB A connectors 5V and GND pads)
1) If you are not planning on mounting RoboPi on a Pi in the future
a) You can solder +5 and GND to the +5 (either of pin 2 / pin 4) and GND (pin 6) of the Pi connector
b) You can add another screw terminal by soldering it into pin 2 & pin 6 (+5 and GND respectively)
2) If you might want to mount it on a Pi later
- solder in the Pi stacking connector
a) use a 3 pin male header, pull out the middle pin, insert the header, solder the +5V to the short end of the inserted header at Pi pin 2, and the GND at Pi pin 6
b) solder the 5V wire close to the connector on stacking pin 2, and GND close to the connector on stacking pin 6
Very good question, I will add the above instructions to the assembly manual.
Excellent suggestion, it will be in the next rev of the manual. Don't know why I did not think of that!
Please keep letting me know how your RoboPi journey goes!
I am planning to release RoboPiLib for the Pi side later today, along with a new user manual revision that documents it.
Maybe I'll just plug it into the Pi and hope for the best. :-)
RoboPi is meant to be the top board in the stack, however "Pi Jumper" stacks on it just fine
http://www.mikronauts.com/raspberry-pi/pi-jumper/
Also check for short between TX & RX (pins 3&4 on the PropPlug connector), and make sure pin 2 on PropPlug is not shorted to ground (/RST)
If there are no shorts, mount it without the chips in RoboPi. If the Pi boots normally, you are good to go - shut down the pi, populate RoboPi.
You could also just run +5 and GND from the Pi to RoboPi with a short cable instead of mounting RoboPi yet, and use a PropPlug for initial tests.
Also any regulated "wall wart" 5V DC power supply can run RoboPi.
I know my description sounded like a lot of work... actually it takes little time, I was just being thorough with my description.
I am in the process of cleaning up RoboPiLib.c, but I can email RoboPiLib.o and RoboPiLib.h to you before its on the web site. You can also grab the eeprom image from the web page, or follow the previous PropGCC on Pi thread, with the propeller_load3 version that can program the Prop from the Pi.
I have to run an errand in about half an hour, but should be back soon after that.
If you can't find the working propeller_load, I'll grab the binary off my one of my Pi's and email it to you.
As the Pi serial port does not bring out RTS or DTR to the main header, a gpio must be pulsed low to reset the prop, and #17 is what people tend to use.
I started on a new one a little while ago. Sources are here: https://github.com/ZiCog/pi-propeller-load
I got the GPIO reset code in there but never did get around to testing it. Me and my Pi's don't meet up very often. I should get more.
Now I'm not sure that those github sources are taken from the correct branch of propgcc and they might be getting out of date by now as well.
What would be the best base loader code to start from now?
I was wondering if you would like my mods or not. I seem to remember I changed the RTS/DTR selection from a boolean to an emum that included GPIO. That change percolates up from osint.
In my original version a year ago, somehow I lost the code, I did some regexp comparisons on the serial port device such that /dev/ttyAMA0 would get the GPIO reset. The idea being that even on the Pi you might want to program via normal USB serial ports as well so a special ifdef build is not satisfactory.
You have this:
But I think you meant this: