I removed the secondary USB because the Pi Zero only has 1 USB, but you may keep it and open the slot in the case for fitting it:
Solder wires to the MICRO USB MALE connector, leave pad 4 without any wire. Check the diagram earlier in this post
Set up the raspberry and get it working. You can try with the command: cat /dev/serial/by-id/--------first entry item of that path here---------
to check if the arduboy is connected. First create a simple sketch that sends something via serial every second and connect the arduboy with a normal micro usb host wire (male to male)
Solder the other components and use the backside pads of the Raspberry for the USB. Use the holes in the pcb to get the wires from one side to the other, there is not a lot of space in the case for go around
Turn the raspberry on with an external charger or battery pack, do not use the computer usb port. (I burned my USB3 because bad connection… I was able to fix it back http://www.eevblog.com/forum/repair/help-to-identify-component/ but it is not something I recommend to do) check if you can get the Arduboy to send serial text, disconnect and retry a couple of times
Cover the wires with kapton tape, or some thin insulator. Do not leave the wires or parts floating in the breeze.
Assemble the dock. Scrape a little bit the bottom boundaries of the top part (the fit is tight but if it is too tight it may break the bottom part of the dock). Glue the MALE USB MICRO with a drop of epoxy. Set the arduboy while the glue is not completelly dry to get a perfect fit.
Print it, no supports required
Solder the wires and epoxy the male USB to the top part.
Work in progress (no real functionality yet, besides uploading hex and some other stuff but I am just trying and testing stuff so the code might be ugly
# Install Jessie light and then configure wifi:
# Update and upgrade
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install avrdude mono-complete git
# GIT actions
# Delete repo
# Clone repo
git clone https://github.com/eried/ArduboyCollection.git repo
# Update local repo
git reset --hard HEAD
git clean -xffd
Alright, we’ve got to see about having a board made and I’ll see about how much it would cost to have a small run of these injection molded. (Probably too expensive) But it may actually be affordable to mass 3d print some cases while I’m overseas.
Would have to use the pogo pin design like this USB hub I would suppose!
Maybe trying another board is recommended. Mine works perfectly now, is super reliable but involves a lot of work soldering. Also I did wanted to bypass the power circuitry in the Pi, that is why VCC is connected directly from the power instead of using that back pad.
Having the Arduboy powered on plus the charging circuitry generated a small drop in the voltage that almost always rebooted the dock:
Arduboy Dock by eried is licensed under the Creative Commons - Attribution - Non-Commercial license.
Creative Commons NC licenses expressly define NonCommercial as “not primarily intended for or directed towards commercial advantage or monetary compensation.”
I could be wrong (I’m most definitely not a lawyer, and I hope I’m wrong) but this sounds to me like it means people who 3D print the Arduboy Dock can’t sell it, whether it be Arduboy Inc or another third party.
One of the reasons I’m usure of the ramifications is that I’m not sure if it applies to the whole Dock or just the .stl files.
The licence won’t necissarily prevent that. To quote the article you linked to:
One particularly peeved maker, Louise Driggers found many of her designs on eBay even after posting them under a Creative Commons non-commercial license, which allows for downloading and printing but not commercial gain.
Having a licence just means that the creator (e.g. Louise Driggers) can take the entity breaking the licence (e.g. Just3DPrint) to court over the incident.
The article also says (quoting Louise Driggers):
“The models these guys are selling were CC-noncommercial. That’s as open and free as you could possibly ask for. Everyone can use them, for anything, except to sell. That’s a very generous offer. The designer spent his time and equipment making them and gets nothing for it, you can have it, so long as you don’t make money off it either,”
This is where the flaw lies: Arduboy Inc will want to sell them (as it should do, that’s a good thing for all of us), but the CC-NC licence might be hindering that. Creative Commons itself states:
CC’s NonCommercial (NC) licenses prohibit uses that are “primarily intended for or directed toward commercial advantage or monetary compensation.”
So basically it’s not urgent but it needs ironing out before Arduboy Inc can think about selling the dock.
I’m totally down to try and mass-produce anything the community can support and wants to buy, but right now the issue would be making the kit complete with a PCB that can plug in or bolt on. The issue about power drop is one that would have to be addressed somehow.
I have not had much time to finish the software but my conclusions as far:
The RPi is 100% stable with this electronic setup. Maybe the resistor/cap could be even lower.
The dock takes about 19-25 seconds to boot. I would love to improve that trying to remove stuff from the linux system installed on the pi
The bottom of the dock needs more weight so pressing the buttons do not require holding it. However I am not sure because the actual dock is super tiny
@curly asked about the EEPROM functionality. I discarded the idea time ago but rethinking it now it can be done. The only thing to do is to find a way to detect that the game has not changed since the dock installed it for the first time. So it could work like “virtual” memory cards.
Any idea on how to know which game is currently installed? Has the dock to write stuff to the EEPROM (like a hash in several places?
You have probably seen the thread regarding EEPROM use and you are likely to get some debate going here.
Without a standard, your approach sounds like it could work - write it to (say) three or four places and hope the program does not overwrite them all. If you have loaded the app from the dock and assuming the user does not load apps any other way, can you simply keep track of the last loaded app and associate the EEPROM image with it?
Yes I was going to do that. In that way the UI can be seamless. You can even have “gamestates” for the same game, one for every time you plugged the Arduboy in the dock, if something changed in the eeprom a new gamestate would be available.
The only missing case will happen if the user loads a different game that does not change the “dock signature” from the EEPROM to identify the last loaded game.
Without modifying the games here’s one idea, have the dock ask if game was changed, if no update eeprom if yes bring up a list of games user selects currant game from list confirms and that games eeprom updates
Would also be a good idea to have multiple save slots per game
You might consider additionally reading the unit ID from system EEPROM, so you can handle tracking multiple Arduboys on the same dock.
The unit ID is a 16 bit value defined and handled by the Arduboy2 library, that users can set to uniquely identify a given Arduboy. It can be set, along with a 6 character unit name, using the SetNameAndID example sketch included with the Arduboy2 library.