Our campaign started one week ago, and we’ve already gathered 20% of our goal. Thank you for all your support!
This week we have been working hard on software. Read on for more details, highlights, and special features of the Robo HAT MM1, plus answers to some questions we have been receiving.
The biggest software news of last week is that all our Bootloader, CircuitPython, and SeeSaw firmware are now included in the official Adafruit Repositories on GitHub! Thank you Adafruit for including the boards, it is great to have their support!
So far, we have a few different software libraries working. They are all mentioned on the campaign page. But why would you use one over another? To decide which software you should be using for your project, let's explore the options...
CircuitPython is a special programming language developed by Adafruit that is based on Python but focused purely on writing code for hardware. It has many thousands of libraries for different sensors. It makes programming motors, servos, sensors and other bits easy. CircuitPython doesn't require any software on your computer - it runs on the board (Robo HAT MM1) which appears as a USB drive.
Typically, CircuitPython is what we expect our backers to be using. We have used it for reading data from the MPU9250 IMU sensor, then using that data to control a robot arm. We have also used it to read RC signals from an RC Remote and send those signals back to the Servos attached to the Robo HAT. There are many other example uses that you can come up with. Adafruit has many great tutorials on CircuitPython and how to use it.
The other Adafruit library we are supporting is SeeSaw. SeeSaw runs on the Robo HAT and you can use a Raspberry Pi to make it do things using Python. All commands are sent from the Raspberry Pi to the Robo HAT over I2C. The typical use case for this would be that you have a robot or car that you only want to use the Robo HAT to control Servo Motors, Encoders, or other attached sensors over UART or SPI.
SeeSaw has a few limitations. It only supports some features of the processor on the board. We are looking at expanding what SeeSaw is able to do to support RC Input and controlling some logic of the board (like the power-on button). It is also well documented. Overall, it is a very useful library if you plan on using the Raspberry Pi and the Robo HAT together.
Most people are familiar with the Arduino IDE. It has many millions of users around the world. We are supporting this as it allows the existing software developed for Arduino to run on the Robo HAT. This includes interfacing with GSM modules, reading GPS coordinates, and using any kits that you may already have.
Almost any hardware problem when using Arduino has already been solved by an online forum! This is the sort of support we wanted to maintain with the Robo HAT, and can by having Arduino's programming environment available to backers.
This week we have been attempting to build the software for ArduPilot. ArduPilot is an autonomous vehicle control package which supports drones, planes, copters, submarines and cars! We are getting closer to doing this successfully, and we hope that it will be working soon (within the next week or so).
Once ArduPilot is working, we will begin looking at PX4 support. If you are someone who thinks that the Robo HAT is a good fit for PX4, and understands how to make it work with the existing code - please do get in touch. Both of these communities have a large following and we want to include as many of them as possible.
The Robo HAT MM1 has many special features that are unique from other Raspberry Pi HATs available today. In this feature, we explore Robo HAT MM1's power features and how they are better than other HATs.
Included on the Robo HAT MM1 is a 5V Power Regulator that powers the Raspberry Pi and attached sensors.
We have done some load testing with the power supply on the Robo HAT and the results are very impressive! Using duel power sources (the main and auxiliary battery) gives the power rails a small performance boost when needed and also ensures that a drop in power supplied from one battery does not switch off the Raspberry Pi or board - very stable.
Table 1 - Normal Operation Results
|Voltage||Max Current||Output Voltage|
Table 2 - Stress Tests
|Voltage||Max Current||Output Voltage||Failure Reason|
|Main Battery||15V||4.5A||5.0V||Safety - Fuse triggered after 15 seconds|
|Main Battery||15V||5.0A||5.0V||Safety - Fuse triggered after 1 second|
|Aux Battery||4.2V||1. A||4.4V||Low Power|
The results show that the Robo HAT can maintain a constant 2.5A during normal operation using only the main battery without any issues. This is well within the required amount for the Raspberry Pi (2.0A under load) with lots of power to spare!
We recommend using two batteries to avoid 'brown-outs' or power dropouts. In our experience, some motors can draw a lot of current from the main battery. This results in a voltage drop that is very great and can cause the Raspberry Pi to shutdown. Our tests have shown that with two battery sources, it is nearly impossible under normal operation to have the Raspberry Pi shutdown.
Jetson Nano We received a question about powering the Jetson Nano with the Robo HAT. The Jetson Nano can operate with two different modes: Low Power and High Power. Low Power Mode needs 2 Amps @ 5 Volts, which is well within the power requirements of the Robo HAT. High Power Mode needs 4 Amps @ 5 Volts. It is not recommended to power the Jetson Nano using the Robo HAT, however, we know that it will work.
Powering the Jetson Nano with anything other than what is recommended by NVIDIA is at your own risk.
A feature on many self-driving vehicles is that they are all fitted with an emergency stop system (usually a button). For Robo HAT, we have included this feature directly on the board. It disables all power from the battery connected to the POWER IN terminal block. It can be connected through the E-STOP header.
This is very useful for cars and vehicles as an emergency cut-off to motors to prevent them from burning out. The E-STOP does not kill power to the on-board processor, so code is still able to be run and log errors.