The low memory warning is no reason for not uploading (it's not even a problem 99% of the time, Arduino just isn't used to seeing that much memory being used).
As to the upload problems, from our FAQ:
Whether with Sparkiduino, Arduino, or minibloq, here’s how the Arduino software usually loads a program:
1.) Arduino software sends a signal to the board to reset to the bootloader
2.) Arduino software waits for the USB connection to reset because the board switched to bootloader
3.) Board is now in bootloader
4.) Arduino software sees new USB connection, sends what it supposes is the bootloader a new program
5.) Bootloader re-writes the program space with the program the Arduino software just sent it, then runs what it just wrote
1.) Make sure the drivers are installed
If you're having dificulty installing them, follow this guide:http://arcbotics.com/knowledgebase/my-s ... t-install/
2.) Make sure the proper board is selected
You can choose either ArcBotics Sparki or Arduino Leonardo
3.) Make sure the right serial port is selected
ideaIf you’re not sure which Port is Sparki, try looking at the ports in the Serial Port menu before plugging in Sparki, and again after plugging in Sparki. The Port that shows up after you plugged in Sparki should be Sparki. It’s ok to try and upload code to the wrong Serial Port while you figure this step out - you’re not going to destroy anything. The worst thing that can happen is that you will get an error message and you need to get comfortable with error messages if you are going to be working with code or robots!
On Windows, this should be something like COM3, COM4, or COM5. If you see COM1 and COM2, they are unlikely to be Sparki.
On the Mac, this should be something like/dev/tty.usbmodem1411 for a USB board. Make sure that you select the Port that says “tty” and not “cu.” The “tty” Port is for outgoing information while the “cu” device is for incoming information, such as when Sparki sends information to your computer.
4.) Try a manual upload
If you have a program you uploaded to Sparki that causes it to crash (hey, you’re learning programming, that’s fine!), Sparki’s chip might not get the signal in the first part of the upload process.
If the drivers are installed, the solution is almost always to do a 'manual upload', we have a guide on how to do that here:http://arcbotics.com/lessons/manual-upload/