Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
f6f8611
joystick control update
fgrossman Apr 3, 2025
e832b95
updated gamepad buttons
fgrossman May 2, 2025
4067d9d
Update repl.js
fgrossman May 2, 2025
2e28c79
Temp fix
fgrossman May 3, 2025
46873a8
Fixed re-entry bugs
fgrossman May 18, 2025
309a044
Switch to write with response
fgrossman May 18, 2025
8bd7840
Added gamepad blocks
fgrossman May 18, 2025
5b2686f
Update for Data characteristics
fgrossman May 18, 2025
0fd7529
Create joystick.py
fgrossman May 18, 2025
2f8653b
Fix for github relative pages
fgrossman May 18, 2025
8b9bb80
need an / when not empty
fgrossman May 18, 2025
0b952aa
const error
fgrossman May 18, 2025
b009e5f
Don't need jekyll for github pages
fgrossman May 18, 2025
410c301
Include the new joystick file
fgrossman May 18, 2025
47ff2de
Reset XRP after update
fgrossman May 18, 2025
6dcad52
Added more buttons and new color
fgrossman May 21, 2025
20cd93a
Do some error checking
fgrossman May 26, 2025
d2f834f
Changed API
fgrossman May 26, 2025
20e1138
Don't restart program when rebooting
fgrossman May 26, 2025
83ef048
Stop the flow of gamepad data on a reset
fgrossman May 26, 2025
1c038b3
Try WithoutResponse on windows
fgrossman May 26, 2025
9c65fcf
Don't wait for response on STOP
fgrossman May 26, 2025
61846df
Windows test to cause discounnect
fgrossman May 27, 2025
9b9ecb3
Try a timeout and then discounnect
fgrossman May 27, 2025
82291a0
If getPrimaryService fails try again
fgrossman May 28, 2025
82fef86
longer time out
fgrossman May 28, 2025
d98379c
Another delay test
fgrossman May 28, 2025
39f8318
Fixes for ble connections
fgrossman May 29, 2025
44823de
Adjust some of the timeouts
fgrossman May 29, 2025
eb0ef66
Small delay before resetart
fgrossman May 29, 2025
06f9c20
Increment release number
fgrossman May 29, 2025
6d939f0
took out a print that caused problems
fgrossman May 30, 2025
b71f333
Cleaned up an unused variable
fgrossman May 30, 2025
321cdeb
Updated to version 1.2.2 of XRPCode
fgrossman May 31, 2025
e4c61c8
Update CHANGELOG.txt
fgrossman May 31, 2025
29af815
Added gamepad blocks example
fgrossman May 31, 2025
b7408f6
it is a blocks program not py
fgrossman May 31, 2025
a038a35
Fixed sticky keys
fgrossman Jun 7, 2025
731b466
Wait for message
fgrossman Jun 7, 2025
174e7de
Added icon for gamepad attached
fgrossman Jun 18, 2025
48855ba
bug fix
fgrossman Jun 18, 2025
fd5b030
Index cleanup
fgrossman Jul 9, 2025
d187c72
ble connection tweeks
fgrossman Jul 11, 2025
987931b
Turn off spinner
fgrossman Jul 11, 2025
1f9db18
Added repeat until User button block
fgrossman Jul 12, 2025
4aa83a3
Added a comment block
fgrossman Jul 12, 2025
cdbc96f
Update CHANGELOG.txt
fgrossman Jul 13, 2025
efec19f
small bug fixes
fgrossman Jul 13, 2025
fdb30b4
Updated to release 2.1.3 of XRPLib
fgrossman Jul 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added .nojekyll
Empty file.
36 changes: 14 additions & 22 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
# Version 1.2.2

## Gamepad support
* After updating the XRPLib to version 2.1.3 or greater you can use a gamepad with XRPCode to drive your XRP. The Blocks palette has been updated with gamepad blocks.
* To drive your XRP you will need a program that responds to the gamepad interactions. There is a very small program in the XRPExamples directory. Be creative and create your own for different types of driving.
* We use the standard Web Gamepad support and recognize only one controller. If you want to know if your gamepad will work you can go to this <a href="https://hardwaretester.com/gamepad" target="_blank" style="color: blue;">website</a> that will test if your gamepad is compatible with the web browser.
* If you don't have a gamepad you can use the keyboard. For the left joystick use WASD keys and for the right joystick use the IJKL keys. The number keys 1 - 0 are used for the buttons, in the same order as the pull down on the button gamepad block. There are no keys for the D-PAD.

## Waiting dialog box
We noticed that when connecting and stopping a program via bluetooth that different operating systems and versions take different amounts of time. We now put up a working dialog box to let you know the connection is still being worked on.

## Comment block added
If you would like to add comments to your Blockly program there is now a comment block. It can be found with the Text blocks.

# Version 1.2.1

## Support for new XRP control board
Expand All @@ -19,28 +33,6 @@ But this created a bug where the second time a program was run it could run out
* Updates of XRPLib were only being allowed if you were connected via a USB cable. You can now also update the library over bluetooth. Although it will always be much faster when using a cable.


# Version 1.1.0

#### Bluetooth support
<img height="10%" width="10%" src="images/Bluetooth_FM_Black.png"/></img>

# Please read the steps below!!

* Connect your XRP with a cable
* Let XRPCode upgrade the Micropython and XRPLib
* Under the RUN button will be the unique name of the XRP. You will want to write this on the XRP.
* Disconnect the XRP from the cable and turn on the XRP.
* When you click CONNECT select Bluetooth and it will bring up a list of XRPs that are not currently connected. (If your XRP does not show up press reset)
* Select your XRP and click Pair.
* Once connected XRPCode should be the same as if connected via a cable. YOU ARE NOW CABLE FREE!
* If the XRP is reset / turned off / too far away XRPCode will show RE-CONNECT XRP for 10 seconds and then switch to CONNECT.
* If the XRP is turned back on / brought closer XRPCode will auto re-connect to the XRP within that 10 seconds
* If you start the XRP and a program runs keeping the bluetooth from connecting then press reset and it will restart without running the program

#### Fixed
* Input is now accepted in XRP applications
* The REPL stays live from run to run and has information from the last running program like globals and classes
* When STOP is used the REPL is reset.



Expand Down
Binary file added images/gamepad.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/logo_x_rotate_in_place.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
96 changes: 39 additions & 57 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@

<title>XRP Code Editor</title>

<link rel="stylesheet" href="uikit-3.16.22/css/uikit.css?version=1.2.1" />
<link rel="stylesheet" href="uikit-3.16.22/css/uikit.css?version=1.2.2" />

<link rel="stylesheet" href="js/xterm/css/xterm.css?version=1.2.1"/>
<link rel="stylesheet" href="js/xterm/css/xterm.css?version=1.2.2"/>

<link rel="stylesheet" href="golden-layout/css/goldenlayout-base.css?version=1.2.1">
<link rel="stylesheet" href="golden-layout/css/themes/goldenlayout-dark-theme.css?version=1.2.1">
<link rel="stylesheet" href="golden-layout/css/goldenlayout-base.css?version=1.2.2">
<link rel="stylesheet" href="golden-layout/css/themes/goldenlayout-dark-theme.css?version=1.2.2">

<link rel="stylesheet" href="css/dark/main-dark.css?version=1.2.1">
<link rel="stylesheet" href="css/dark/fs-dark.css?version=1.2.1">
<link rel="stylesheet" href="css/dark/dir_chooser-dark.css?version=1.2.1">
<link rel="stylesheet" href="css/dark/shell-dark.css?version=1.2.1">
<link rel="stylesheet" href="css/dark/editor-dark.css?version=1.2.1">
<link rel="stylesheet" href="css/dark/changelog-dark.css?version=1.2.1">
<link rel="stylesheet" href="css/dark/main-dark.css?version=1.2.2">
<link rel="stylesheet" href="css/dark/fs-dark.css?version=1.2.2">
<link rel="stylesheet" href="css/dark/dir_chooser-dark.css?version=1.2.2">
<link rel="stylesheet" href="css/dark/shell-dark.css?version=1.2.2">
<link rel="stylesheet" href="css/dark/editor-dark.css?version=1.2.2">
<link rel="stylesheet" href="css/dark/changelog-dark.css?version=1.2.2">

<link rel="stylesheet" href="js/treejs/treejs.css?version=1.2.1" />
<link rel="stylesheet" href="js/treejs/treejs.css?version=1.2.2" />

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
Expand Down Expand Up @@ -82,12 +82,14 @@
class = "uk-align-right uk-text-small xrp-name">
</span>

<div class="header_button_space uk-margin-medium-left uk-height-1-1 uk-width-1-3">
<div class="header_button_space uk-height-1-1 uk-width-1-3">

<div class="uk-button-group uk-height-1-1 uk-text-left">
<div class="uk-button-group uk-height-1-1 uk-text-left uk-margin-medium-left">

<img id="logo" class="xrp_logo" src="images/xrpstickerbot.png" alt="XRP Logo" title="Hello world, I'm XRP!" uk-img>

<img id="IDGamePad" style="padding-left: 20%; display: none;" src="images/gamepad.png" alt="gamepad icon" title="gamepad connected" uk-img>

<!-- <button
id="IDConnectBTN"
title="Connect XRP to page manually, or automatically if connected before"
Expand Down Expand Up @@ -217,34 +219,7 @@
</ul>
</div>
</div>
<!--
<button
title="Adds a code editor panel"
alt="Add a new file button"
id="IDAddEditorBTN"
class="uk-button uk-text-small uk-width-1-1 uk-margin-medium-left uk-height-1-1 uk-text-nowrap"
uk-icon="file-edit" dir="rtl">
New File
</button>

<button
title="Opens link in new tab"
alt="Link to open User Guide"
onclick="window.open('https://xrpusersguide.readthedocs.io/en/latest/course/introduction.html', '_blank');"
class="uk-button uk-text-small uk-width-1-1 uk-margin-medium-left uk-height-1-1 uk-text-nowrap"
uk-icon="info" dir="rtl">
User Guide
</button>

<button
title="Opens link in new tab"
alt="Link to open XRP API homepage"
onclick="window.open('https://open-stem.github.io/XRP_MicroPython/', '_blank');"
class="uk-button uk-text-small uk-width-1-1 uk-margin-medium-left uk-height-1-1 uk-text-nowrap"
uk-icon="home" dir="rtl">
XRP API
</button>
-->

</div>

<!-- BELOW LOGO -->
Expand All @@ -264,6 +239,13 @@ <h4 id="IdProgress_TitleText"></h4>
</div>
</div>

<div id="IDWaitingParent" uk-modal bg-close="false">
<div class="uk-modal-dialog uk-modal-body progress-bar-parent">
<h4 id="IdWaiting_TitleText"></h4>
<img id="IDWaitingImage" src="images/logo_x_rotate_in_place.gif" width="150"></div>
</div>
</div>

<!-- This is the modal for connection type -->
<div id="connect-modal" uk-modal="esc-close:false; bg-close:false">
<div class="uk-modal-dialog uk-modal-body">
Expand Down Expand Up @@ -304,28 +286,28 @@ <h2 class="uk-modal-title"></h2>
<script src="js/blockly-10.0.0/blockly.min.js"></script>
<script src="js/blockly-10.0.0/python_compressed.js"></script>

<script src="js/treejs/tree.js?version=1.2.1"></script>
<script src="js/treejs/tree.js?version=1.2.2"></script>

<script src="js/xterm/lib/xterm.js?version=1.2.1"></script>
<script src="js/xterm-addon-fit/lib/xterm-addon-fit.js?version=1.2.1"></script>
<script src="js/xterm/lib/xterm.js?version=1.2.2"></script>
<script src="js/xterm-addon-fit/lib/xterm-addon-fit.js?version=1.2.2"></script>

<script src="js/marked/marked.min.js"></script>


<script src="js/ace/ace.js?version=1.2.1" type="text/javascript" charset="utf-8"></script>
<script src="js/ace/ext-language_tools.js?version=1.2.1"></script>
<script src="js/ace/ace.js?version=1.2.2" type="text/javascript" charset="utf-8"></script>
<script src="js/ace/ext-language_tools.js?version=1.2.2"></script>

<script src="js/xrp_blocks.js?version=1.2.1"></script>
<script src="js/xrp_blocks_python.js?version=1.2.1"></script>
<script src="js/xrp_blockly_toolbox.js?version=1.2.1"></script>
<script src="js/xrp_blocks.js?version=1.2.2"></script>
<script src="js/xrp_blocks_python.js?version=1.2.2"></script>
<script src="js/xrp_blockly_toolbox.js?version=1.2.2"></script>

<script src="js/editor_wrapper.js?version=1.2.1"></script>
<script src="js/filesystem_wrapper.js?version=1.2.1"></script>
<script src="js/dir_chooser.js?version=1.2.1"></script>
<script src="js/active_terminal_wrapper.js?version=1.2.1"></script>
<script src="js/joystick_wrapper.js?version=1.2.1"></script>
<script src="js/repl.js?version=1.2.1"></script>
<script type="module" src="golden-layout/bundle/esm/golden-layout.js?version=1.2.1"></script>
<script type="module" src="js/main.js?version=1.2.1"></script>
<script src="js/editor_wrapper.js?version=1.2.2"></script>
<script src="js/filesystem_wrapper.js?version=1.2.2"></script>
<script src="js/dir_chooser.js?version=1.2.2"></script>
<script src="js/active_terminal_wrapper.js?version=1.2.2"></script>
<script src="js/joystick_wrapper.js?version=1.2.2"></script>
<script src="js/repl.js?version=1.2.2"></script>
<script type="module" src="golden-layout/bundle/esm/golden-layout.js?version=1.2.2"></script>
<script type="module" src="js/main.js?version=1.2.2"></script>
</body>
</html>
Loading