New (another) unofficial Arduboy Uploader :)

OK the problem was something on how Windows 7 handles resources for the serialport inside a thread… or something like that :smiley:
http://stackoverflow.com/questions/3808885/net-4-serial-port-objectdisposedexception-on-windows-7-only

It is fixed now in v0.5, please download it and test.

1 Like

yes indeed! Fixed! Wahey! Works as it should now! I probably tried out more games in an hour today than I did for an entire month lol!

This is fantastic work! Such a breeze to choose - see a screenshot, read a concise description and upload. Thanks! @eried

1 Like

This is so good maybe we need to bring this in house and sponsor this maybe :wink:

1 Like

The latest version (v0.9.1) has some extra checks to avoid breaking Arduboys :smile:

These are simple checks but I think it is enough to keep some problems away.

1 Like

Hi Edwin,

I’m looking for some advice, I loaded up Back to The Jungle using your uploader and now I can’t upload any other games by any method.

What is happening is whenever I try to load a game using the Arduino IDE, I press upload and it tries to upload then at the last minute it fails by saying USB not recognised. I have tried this on 2 Windows 10 laptops and a Windows 10 Tablet. I get the same error on each device.

I also get a board error, as when I connect my Arduboy I make sure both the board and the port are set correctly but when the arduboy tried to reboot with the new game it comes up with USB not recognised and a board error.

I have also try to do a hard reset by pressing a pin then uploading a sketch, but to no avail. I had the previous loader v0.9.

Any ideas would be welcome.

Thanks in advance.

I

Have you tried with flashlight mode? My uploader uses the standard avrdude inside so the method is the same as the Arduino IDE uses

Is that switch on with the up button pressed? And the white led and screen goes white?

Correct, search the forum for flashlight mode

I’ve tried that method. I do have Back To The Jungle installed so it’s not dead. However as I’ve reiterated before I can’t upload any other game.

The procedure is too easy!
your uploader is very seamless. thank you.

  1. open homepage
  2. click upload button
  3. enjoy game!
2 Likes

Ok, can you enable the verbose mode in preferences in arduino ide and copy the output here after trying to upload a game?

Arduino: 1.8.2 (Windows 10), Board: “Arduboy”

Sketch uses 13356 bytes (46%) of program storage space. Maximum is 28672 bytes.
Global variables use 1788 bytes (69%) of dynamic memory, leaving 772 bytes for local variables. Maximum is 2560 bytes.
Forcing reset using 1200bps open/close on port COM3
PORTS {COM3, } / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
Couldn’t find a Board on the selected port. Check that you have the correct port selected. If it is correct, try pressing the board’s reset button after initiating the upload.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Arduino: 1.8.2 (Windows 10), Board: “Arduboy”

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\philg\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\philg\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\philg\Documents\Arduino\libraries -fqbn=arduboy:avr:arduboy -vid-pid=0X2341_0X8036 -ide-version=10802 -build-path C:\Users\philg\AppData\Local\Temp\arduino_build_415869 -warnings=none -build-cache C:\Users\philg\AppData\Local\Temp\arduino_cache_895597 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.1.1 -prefs=runtime.tools.avr-gcc.path=C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2 -prefs=runtime.tools.avrdude.path=C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9 -verbose C:\Users\philg\Documents\Arduino\Tiny-1010\Tiny-1010.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\philg\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\philg\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\philg\Documents\Arduino\libraries -fqbn=arduboy:avr:arduboy -vid-pid=0X2341_0X8036 -ide-version=10802 -build-path C:\Users\philg\AppData\Local\Temp\arduino_build_415869 -warnings=none -build-cache C:\Users\philg\AppData\Local\Temp\arduino_cache_895597 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.1.1 -prefs=runtime.tools.avr-gcc.path=C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2 -prefs=runtime.tools.avrdude.path=C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9 -verbose C:\Users\philg\Documents\Arduino\Tiny-1010\Tiny-1010.ino
Using board ‘arduboy’ from platform in folder: C:\Users\philg\AppData\Local\Arduino15\packages\arduboy\hardware\avr\1.0.0
Using core ‘arduino’ from platform in folder: C:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18
Detecting libraries used…
“C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10802 -DARDUINO_AVR_ARDUBOY -DARDUINO_ARCH_AVR -DARDUBOY_10 -DUSB_VID=0x2341 -DUSB_PID=0x8036 ‘-DUSB_MANUFACTURER=“Unknown”’ ‘-DUSB_PRODUCT=“Arduboy”’ “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\cores\arduino” “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\variants\leonardo” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869\sketch\Tiny-1010.ino.cpp” -o “nul”
“C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10802 -DARDUINO_AVR_ARDUBOY -DARDUINO_ARCH_AVR -DARDUBOY_10 -DUSB_VID=0x2341 -DUSB_PID=0x8036 ‘-DUSB_MANUFACTURER=“Unknown”’ ‘-DUSB_PRODUCT=“Arduboy”’ “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\cores\arduino” “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\variants\leonardo” “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\libraries\EEPROM\src” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869\sketch\Tiny-1010.ino.cpp” -o “nul”
“C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10802 -DARDUINO_AVR_ARDUBOY -DARDUINO_ARCH_AVR -DARDUBOY_10 -DUSB_VID=0x2341 -DUSB_PID=0x8036 ‘-DUSB_MANUFACTURER=“Unknown”’ ‘-DUSB_PRODUCT=“Arduboy”’ “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\cores\arduino” “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\variants\leonardo” “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\libraries\EEPROM\src” “-IC:\Users\philg\Documents\Arduino\libraries\Arduboy2\src” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869\sketch\Tiny-1010.ino.cpp” -o "nul"
Using cached library dependencies for file: C:\Users\philg\Documents\Arduino\libraries\Arduboy2\src\Arduboy2.cpp
Using cached library dependencies for file: C:\Users\philg\Documents\Arduino\libraries\Arduboy2\src\Arduboy2Audio.cpp
Using cached library dependencies for file: C:\Users\philg\Documents\Arduino\libraries\Arduboy2\src\Arduboy2Core.cpp
Using cached library dependencies for file: C:\Users\philg\Documents\Arduino\libraries\Arduboy2\src\Sprites.cpp
Using cached library dependencies for file: C:\Users\philg\Documents\Arduino\libraries\Arduboy2\src\ab_logo.c
Using cached library dependencies for file: C:\Users\philg\Documents\Arduino\libraries\Arduboy2\src\glcdfont.c
Generating function prototypes…
“C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10802 -DARDUINO_AVR_ARDUBOY -DARDUINO_ARCH_AVR -DARDUBOY_10 -DUSB_VID=0x2341 -DUSB_PID=0x8036 ‘-DUSB_MANUFACTURER=“Unknown”’ ‘-DUSB_PRODUCT=“Arduboy”’ “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\cores\arduino” “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\variants\leonardo” “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\libraries\EEPROM\src” “-IC:\Users\philg\Documents\Arduino\libraries\Arduboy2\src” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869\sketch\Tiny-1010.ino.cpp” -o “C:\Users\philg\AppData\Local\Temp\arduino_build_415869\preproc\ctags_target_for_gcc_minus_e.cpp”
“C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags” -u --language-force=c++ -f - --c+±kinds=svpf --fields=KSTtzns --line-directives "C:\Users\philg\AppData\Local\Temp\arduino_build_415869\preproc\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch…
“C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10802 -DARDUINO_AVR_ARDUBOY -DARDUINO_ARCH_AVR -DARDUBOY_10 -DUSB_VID=0x2341 -DUSB_PID=0x8036 ‘-DUSB_MANUFACTURER=“Unknown”’ ‘-DUSB_PRODUCT=“Arduboy”’ “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\cores\arduino” “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\variants\leonardo” “-IC:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\libraries\EEPROM\src” “-IC:\Users\philg\Documents\Arduino\libraries\Arduboy2\src” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869\sketch\Tiny-1010.ino.cpp” -o "C:\Users\philg\AppData\Local\Temp\arduino_build_415869\sketch\Tiny-1010.ino.cpp.o"
Compiling libraries…
Compiling library "EEPROM"
Compiling library “Arduboy2"
Using previously compiled file: C:\Users\philg\AppData\Local\Temp\arduino_build_415869\libraries\Arduboy2\ab_logo.c.o
Using previously compiled file: C:\Users\philg\AppData\Local\Temp\arduino_build_415869\libraries\Arduboy2\glcdfont.c.o
Using previously compiled file: C:\Users\philg\AppData\Local\Temp\arduino_build_415869\libraries\Arduboy2\Arduboy2.cpp.o
Using previously compiled file: C:\Users\philg\AppData\Local\Temp\arduino_build_415869\libraries\Arduboy2\Arduboy2Audio.cpp.o
Using previously compiled file: C:\Users\philg\AppData\Local\Temp\arduino_build_415869\libraries\Arduboy2\Arduboy2Core.cpp.o
Using previously compiled file: C:\Users\philg\AppData\Local\Temp\arduino_build_415869\libraries\Arduboy2\Sprites.cpp.o
Compiling core…
Using precompiled core
Linking everything together…
“C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-gcc” -w -Os -g -flto -fuse-linker-plugin -Wl,–gc-sections -mmcu=atmega32u4 -o “C:\Users\philg\AppData\Local\Temp\arduino_build_415869/Tiny-1010.ino.elf” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869\sketch\Tiny-1010.ino.cpp.o” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869\libraries\Arduboy2\ab_logo.c.o” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869\libraries\Arduboy2\glcdfont.c.o” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869\libraries\Arduboy2\Arduboy2.cpp.o” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869\libraries\Arduboy2\Arduboy2Audio.cpp.o” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869\libraries\Arduboy2\Arduboy2Core.cpp.o” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869\libraries\Arduboy2\Sprites.cpp.o” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869/…\arduino_cache_895597\core\core_arduboy_avr_arduboy_3d59c19b3966f8879200cc931f54ba0b.a” “-LC:\Users\philg\AppData\Local\Temp\arduino_build_415869” -lm
"C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-objcopy” -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 “C:\Users\philg\AppData\Local\Temp\arduino_build_415869/Tiny-1010.ino.elf” “C:\Users\philg\AppData\Local\Temp\arduino_build_415869/Tiny-1010.ino.eep”
“C:\Users\philg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-objcopy” -O ihex -R .eeprom “C:\Users\philg\AppData\Local\Temp\arduino_build_415869/Tiny-1010.ino.elf” "C:\Users\philg\AppData\Local\Temp\arduino_build_415869/Tiny-1010.ino.hex"
Using library EEPROM at version 2.0 in folder: C:\Users\philg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\libraries\EEPROM
Using library Arduboy2 at version 4.0.0 in folder: C:\Users\philg\Documents\Arduino\libraries\Arduboy2
Sketch uses 13356 bytes (46%) of program storage space. Maximum is 28672 bytes.
Global variables use 1788 bytes (69%) of dynamic memory, leaving 772 bytes for local variables. Maximum is 2560 bytes.
Couldn’t find a Board on the selected port. Check that you have the correct port selected. If it is correct, try pressing the board’s reset button after initiating the upload.

I think you have to write the bootloader again as I explain here: Bring your Arduboy back from the dead (burn bootloader)

How did you uploaded my game? Did you compiled the code yourself?

Because if you used my hex file is like almost impossible to break your Arduboy, while developing it I must have uploaded the hex file thousand times to my three arduboys so it is a quite safe procedure

I vote for that.

One thing i missed in Arduboy.com is some kind of game section just like the @eried website when you can see a gallery with the games available.

The uploader linked to an arduboy:// protocol it’s great. As @senkun says “I probably tried out more games in an hour today than I did for an entire month”

1 Like

We’re working on deploying an arcade section in the next few weeks!

There is already a standard for the .arduboy files and the repo format so we will be sticking to that and that is what everyone has been using so far. And in standard open source community style it’s been developed 100% by the community.

As such I’m actually a little behind the ball on actually implementing it on our site. We wanted to let it evolve on it’s own instead of just coming in and saying it will work a certain way.

I’m getting in touch with @eried and seeing what we can put together :wink:

3 Likes

This is a great tool, Thank you for creating it.

http://neoretro.games now uses this program to upload our games directly to an Arduboy from the site.
I also reworked the site to be fully dynamic based off the .arduboy file format.
By just adding a .arduboy file to the site it will be dynamically added it to the webpage.

1 Like

Nice! do you think the current installer way is enough? or a normal setup with uninstaller would fit best?

Also, we need some Mac programmer to port this uploader to that platform :slight_smile: maybe Arduboy can put a small bounty prize :smiley:

In my opinion an installer/uninstaller is best for the average person.
I would love to help but I’ve never written anything like your installer for the Mac, my focus is more on website interfaces and backend code.

The new site design also will be easy to filter and sort, I am considering branching it for other developers since by just adding the Arduboy file it will appear on the site.

I am not sure to create a normal installer and uninstaller or leave it as is. Any other opinion?

About your website: Yeah, looks quite clever. I do not know how the source link and description appears though. For example, for your last video the video is wrong, so that was probably added manually? Also, how do you create the Arduboy file? I find that pretty tedious compared on just uploading things to my repo (takes me 10 seconds or so to upload the hex, png and description)