I have published Scratch v2.0 to the web at http://www.scratch4.net. If you are running the 1.0 client, the deployment tool will update automatically the next time you run it. Otherwise, just visit the link above and click through the steps on the ‘Get Software’ page.
To take advantage of the new features, you must install the GHI 2016 R1 pre-release SDK in order to get the latest CDC (serial USB) drivers.
New Features:
[ul]Side-by-Side support for GHI 4.3.7 and 4.3.8 G30 firmware (you don’t have to update your BP until you want to)
Accessory UART card no longer needed - the new firmware supports serial over the USB port when using GHI 2016 R1 (4.3.8 ) G30 firmware
Support for the N18 display, including clear-display, lines, circles, rectangles and text (4.3.8 only)
Touch pads removed
New ‘ClassRoom’ version which can install from a CD, thumb drive, or network share and which does not require internet access (please contact me for a downloadable copy). This version will not automatically get bug fixes, so I want to keep track of who has it in case there are critical updates.
New ‘Settings’ page, with the ability to exclude certain COM ports from the Firmata discovery process (which can cause unwanted bytes to be emitted on serial ports). Use this if you have other serial devices that are getting annoyed by Scratch
Numerous bug fixes[/ul]
To upgrade or deploy to a BrainPad for the first time:
[ol]Install GHI SDK 2016 R1
Connect BrainPad and run FezConfig and update the tinybooter and and clr firmware per GHI instructions
Reboot BrainPad (you should see a black screen)
Run Scratch Gateway, select 4.3.8 firmware and hit deploy
Check the output window that appears for any error messages
Exit Scratch Gateway
Reboot BrainPad (it may reboot itself again to get into CDC mode)
Start Scratch Gateway - you should now see the second image (attached below) with a Scratch For .Net device detected
Be sure to create new projects using the BrainPad-438.s2e template to get all the new display goodness[/ol]
Known Issues
[ul]Rebooting the BrainPad, especially after a deployment or USB/serial mode change (LEFT button depressed) can confuse the gateway. I am working on fixing this, but for now, you may have to restart the gateway after a reboot.
If the Gateway fails to launch - check whether another copy is running and kill it
If the Gateway fails to launch after upgrading to the latest version, you may need to uninstall and reinstall.
There is (currently) no way to match up Scratch programs against the firmware you have installed, so if you run a program with 4.3.8 features against a board running 4.3.7, then the new blocks will simply be ignored.[/ul]
When in doubt:
[ol]Unplug BrainPad
Exit Gateway
Use task manager to make sure the Gateway has exited
Plug in BrainPad
Start Gateway[/ol]
If you run the new 4.3.8 firmware, your Brainpad will permanently be in serial-over-USB mode. To return to debug/deploy-over-usb mode, hold down the LEFT button on the BrainPad while rebooting it.
You can run this code at startup in any program to revert the changes made by Scratch:
if (GHI.Processor.DebugInterface.Type == DebugInterface.InterfaceType.Serial)
{
GHI.Processor.DebugInterface.Type = DebugInterface.InterfaceType.Usb;
GHI.Processor.DebugInterface.UseInTinyBooter = true;
GHI.Processor.DebugInterface.Save();
PowerState.RebootDevice(false);
}
What took so freakin long? Well, simple is hard. Martin’s law of the Conservation of Effort says that every effort you save your users has to be paid for in design and coding effort. A lot of work went into making CDC mode and deployment as easy as possible (and it still has rough edges that I am working on). This was also the first release where I tried to support multiple firmware versions, and that turned up some design shortcomings. I don’t want to force people to upgrade, so I needed to make sure that the gateway could adapt to multiple different firmware versions that might be found on a BrainPad. Also, the original design was for a click-once deployed program that gets its resources from the web, which is nice and all for some folks, but unworkable in some classroom settings. So a lot of work went into creating compile-time flexibility for building a ‘Classroom’ version that would use only firmware images and drivers that were built in at compile time. Anyway, I hope it proves to be worth the wait.
And of course, if you have any problems, please contact me as early on as possible and I will help you work through them. This has been a substantial face-lift and there’s all kind of potential for things to go wrong, so I am eager to help you work through problems. Chances are, someone else will hit it too.