Byte Works Support


Download the latest documentation for techBASIC on our documentation page, or for the Calculator on our Calculator page. You’ll find the reference manual and quick start guides, all in PDF format so you can print them as needed or move them to iBooks on your iPhone and iPad.

There are dozens of complete programs that illustrate key concepts and commands in techBASIC that are only found in the manual, so don’t skip the reference manual, even if you’re normally the type that doesn’t read them!

Visit Documentation Page

Visit Calculator Page

Apps for people who think.™


See our blogs for a rapidly expanding list of projects, like detailed instructions on how to connect HiJack to an iPhone to use external sensors, a tutorial on creating apps with controls, or to read about our experiences attaching an iPhone to a stunt kite to measure acceleration and rotation.

We also accept guest articles. Get in touch you’d like to share your techBASIC programs or experiences, either by publishing them on our blog page or by getting links from our site to yours.

Visit Blog Page


Like us on Facebook or just visit the page for the latest news and a place to share questions, comments and code.

Visit Facebook Page

We want to hear from you, both about any problems you have and about your successes.

Bugs happen. We’d like to be perfect, but we know we’re not. If you find a problem, please tell us. As our long-time customers know, we’ll do everything we can to make it right.

Tell us about what you want to see in future versions of techBASIC, too. The major input when choosing new features is what our customers are asking for, so don’t be shy about telling us what you want to see!

Sky Spy 1.2 Release Notes

New Features

  1. Supports the iPhone 5 4 inch retina display.

Calculator 1.3.1 Release Notes

  1. The user interface has been updated for compatibility with changes in iOS 7.

  2. The display name has been changed from Calculator to BW Calculator. Apple would not let us use the name Calculator because they have an app with the same name.

Our company policies are simple, reflecting how we like to be treated when we are customers. As with our products, we welcome any recommendations you have for changing our policies.

Privacy Policy

Support Email

If you send us email through our support address, Here’s how we will use your email address:

  1. We will reply to your question or comment if it is appropriate.

  2. If you report a bug or make a suggestion, we will let you know when the version that addresses the issue is released, and which bug(s) or feature(s) has been addressed. You might get more than one email for a single release if you reported more than one problem or made more than one suggestion.

  3. We may get back to you with beta test invitations for new or existing products if that seems appropriate.

  4. We may get back to you with other information, such as new blogs or articles, that seem to pertain to questions or comments you have made. For example, several people received emails from us when the Bluetooth low energy blog for the Texas Instruments SensorTag was posted.

  5. We will let you know when the Byte Works releases a related product.

  6. If any of these replies ever annoys you, let us know. We’ll stop. We want you informed, not annoyed!

  7. We will NOT give your email address to anyone else. Ever.

Email Addresses from Orders

We expect to start taking orders for a new, non-App Store product shortly. When that happens, there will be three levels of email notifications you can subscribe to.

  1. Notify me when new versions are available techBASIC for the App Store is a library, not an executable, so the program can’t tell you when a new version is available. If you select this option (which defaults on), we will drop you a quick note when new versions are released so you know it’s time to go get your update.

  2. Notify me of new software The Byte Works will send you notifications when new apps are released.

  3. Notify me of related third-party products The Byte Works will let you know when a related third party product is available. For example, we’ll tell you when books or articles appear that use techBASIC.

  4. If any of these emails ever annoys you, let us know. We’ll stop.

  5. We will NOT give your email address to anyone else. Ever.

Refund Policy

Products Purchased from the Byte Works.

If you don’t like our product, return it within 30 days of purchase for a full refund. We WILL ask questions--we want to know why we didn’t satisfy you--but we will always honor the refund request.

Products Purchased from Apple’s App Store.

Apple handles all refunds and returns to the App Store. We literally don’t know who you are, what you paid, or anything else about you when you buy an app from the App Store. If you need support, drop us a note. If you need a refund or have any other issue with an App Store purchase, you will have to go through Apple. We will be happy to help if needed, but have no special channels for resolving App Store issues.

Legal Stuff

Apple, the Apple logo, iPad, and iPhone are trademarks of Apple Inc., registered in the U.S. and other countries. App Store is a service mark of Apple Inc.

The Byte Works is a registered trademark of The Byte Works, Inc.

techBASIC and techBASIC Sampler are trademarks of The Byte Works, Inc.

Scroll down, and you’ll find:

Email link for support, questions, bug reports, or just to say hi!

Our privacy policy.

Our refund policy.

Links for documentation, blogs, and Facebook, where you can chat with other folks using our products.

Release notes for recent updates to our products.

techBASIC 3.0 Release Notes

New Features

• Programs can now be organized in folders.

• Lots of new samples are provided; these are organized in folders.

  1. You can move, copy or create aliases of programs.

  2. There is a new Subs button when editing a program on the iPad. Tap it to get a list of subroutines and functions in the program. Tap the name of a subroutine or function to jump to it.

  3. The font size can be changed. See the preferences from the Settings App. Be sure to restart techBASIC after changing the font size so text areas are regenerated.

  4. There is now a System.showSource method to show source; it’s handy just before a program ends to switch back to the source view during development.

  5. HTTP passwords are supported.

Bug Fixes and Minor Changes

  1. Passing an array with empty strings to TableObject.insertRows no longer crashes.

  2. Using NOT, BOTNOT, unary - and unary + on an undefined variable no longer causes a crash.

  3. Documentation has been corrected for System.device, ImageView.loadImage and Button.loadImage.

  4. Setting a text field with a malformed unicode string could cause a crash for some strings. This is now prevented.

  5. Setting the size of a plot to a very small value no longer crashes techBASIC.

  6. The accelerometer no longer hangs or crashes with an out of memory error after running for several seconds.

  7. Deep recursion (deeper than 2048 calls) is now prevented in techBASIC, preventing the memory manager from shutting techBASIC down because it thinks there is a runaway memory leak.

  8. READ now works properly in subroutines, using the DATA statements from the local subroutine.

  9. LOF and EOF now work correctly for TCP/IP connections. TCP/IP has also been rewritten for enhanced performance and stability.

  10. The Japanese keyboard no longer causes problems with sizing of the text screens.

  11. Japanese (and other) unicode characters can now be printed using the PRINT command.

  12. Closing a MapView releases it’s use of the location manager, allowing location services to stop. Remember: The MapView is still in use when the program ends. You must remove it or run another program before it truly goes away.

  13. BLE.retrievePeripherals failed; it works, now.

  14. The documentation for BLE.retrievePeripherals said an empty array could be passed to retrieve all known peripherals. This is not allowed; the documentation has been changed to reflect this.

  15. INPUT statements reading more than 512 characters on a single line could corrupt memory, leading to crashes. This has been corrected.

techBASIC App Builder 3.0 Release Notes

Updated to match the techBASIC 3.0 release. See the techBAIC 3.0 release notes for details.

techBASIC 3.1 Release Notes

New Features

  1. Polygons are now available from Graphics. See Graphics.fillPoly and Graphics.drawPoly.

  2. New samples have been added to the O’Reilly Books folder, including BLE Truck, WiFly Terminal and Serial Servo.

Bug Fixes

  1. Leaving an array subscript off of an array of objects when calling a method no longer causes a crash.

  2. The maintainAspect parameter for Button.loadImage is now documented.

  3. The Move dialog functions better on iPhones.

  4. Graphics.setTranslation now works with pixel graphics.

  5. Assigning one array to another no longer changes the lower bound of the assigned array.

  6. The subroutine drop-down and Move dialogs no longer crash when running under iOS 5.1.

  7. A memory leak involving setting colors in pixel graphics has been corrected.

  8. An issue that occasionally caused the same line typed form the console to be read again by LINE INPUT has been corrected.

  9. The Slime Mold sample has been improved.

techBASIC App Builder 3.1 Release Notes

Updated to match the techBASIC 3.1 release. See the techBAIC 3.1 release notes for details.

techBASIC 3.2 Release Notes

Includes techBASIC App Builder and techBASIC Sampler

New Features

See the Reference Manual or online help system for details.

  1. The user interface has been reworked to support iOS 7.

  2. Complete support for BLE slave mode lets you treat an iPhone or iPad as a BLE device. New classes include BLEATTRequest, BLEMutableCharacteristic, BLEMutableService and BLEPeripheralManager. Chapters 9 and 10 of Building iPhone and iPad Electronics Projects show two projects using these commands.

  3. The following new events to support BLE: BLEMutableCharacteristicInfo, BLEMutableServiceInfo, BLEPeripheralManagerInfo and readyToUpdateSubscribers. The BLE class has a new method to support BLE slave mode: newBLEPeripheralManager. BLEService adds the isPrimary method.

  4. A new method, Comm.isReadyForOutput, allows an app to check to see if a TCP/IP, HTTP or FTP port is ready to receive output.

  5. New samples have been added to the O’Reilly Books folder, including BLE Chat A, BLE Chat B, Paddles,  Left Paddle and Right Paddle.

  6. On the iPhone, dismissing the keyboard now saves the source immediately.

Bug Fixes

  1. On the iPad, source code no longer overwritten the variable and stack display when the Run button is pressed while the source view is visible, the keyboard is visible when the run button was hit, and a breakpoint is hit.

  2. Data folders are no longer copied to the source view when techBASIC starts.

  3. Copying a program while it is being edited now copies the version with editing changes, not the unchanged version on disk.

  4. Full screen mode on an iPhone no longer shows the button bar at the bottom of the screen.

  5. The writeDescriptor method’s documentation has been corrected.

  6. A crash bug has been fixed that appeared in some situations when the color picker processed events.

  7. A crash bug has been fixed that appears when null strings are used with Picker.insertRow.

  8. Including a comment line immediately prior to a CASE label no longer causes a compile error.

  9. PlotPoint circles used to mark points locations were drawn 1/2 pixel to far to the lower right. They are now centered.

  10. The console view on the iPhone now uses the font size preference.

  11. The behavior for bitmapped graphics was ill defined on screen size changes. The defined behavior is to repaint the bitmapped image at the top left of the new screen area while maintaining the original image size.

  12. The date and time formats have been updated to give more information and to respect local time and date preferences.

  13. Plot.setTitle and other graphics commands now accept Unicode characters.

  14. Choking the console with too much text may still produce long delays (use System.clearConsole), but will no longer cause iOS to think the app has hung, which resulted in terminating the app.

  15. Passing an array returned from a built-in method as a parameter to another built-in method no longer causes a crash.

techBASIC 3.2.1 Release Notes

Includes techBASIC App Builder and techBASIC Sampler

Bug Fixes

• Opening a program for the first time opens it at the top. Switching to another file and back opens an edited file approximately at the last cursor position.

• (iOS 7) Formatting some single precision numbers caused a crash; this has been corrected.

• (iOS 7) Breakpoints no longer disappear without warning.

• (iOS 7) The status bar overlapped some views, especially the What's New view on the iPhone. This has been corrected.

• (iOS 7) The up and down arrow keys work on Bluetooth keyboards, again. Holding the key down does not repeat the cursor move, though--that will have to wait for changes in iOS.

• (iOS 7) The size of the graphics screen now updates upon rotation.

• (iOS 7) The Find and Replace commands scroll the text properly.

• (iOS 7) Hitting a breakpoint in Source view, switching to the graphics view, then switching back to the source view no longer crashes techBASIC.

• (iOS 7) The E-M Field sample no longer crashes techBASIC.

• Setting the font style or color failed for text drawn to a pixel graphics screen.

• The status bar is not longer hidden when running an app in full screen mode for the first time.

• Updates of plots on screens that do not use pixel graphics are now faster.

• (iOS 7, techSAMPLER) techBASIC Sampler no longer crashes under iOS 7 when creating new programs or folders.

techBASIC 3.2.2 Release Notes

Includes techBASIC App Builder and techBASIC Sampler

New Features

  1. Unicode characters are now fully supported in POS, CHR and ASC.

  2. Use System.vibrate for tactile feedback in apps. (Vibration must be enabled.)

  3. The Image class now supports fillPoly and drawPoly for drawing on images.

  4. System.ticks now reports the same time stamp that is passed in events and so forth.

  5. System.setNullEventTime allows you to set the delay between reporting of null events when the system is not busy.

  6. Sensors.heading now reports the deviation from the magnetic heading.

See the Reference Manual or online help system for details.

Bug Fixes

  1. (iOS 8) The New, Rename, New Folder and Move dialogs have been updated to work with the new iOS 8 view formats.

  2. (iOS 8) Error highlights are no longer off by one line.

  3. (iOS 8) Navigation in the Help menu works properly.

  4. (iOS 8) Text now scrolls when the cursor moves off of the visible part of the view.

  5. (iOS 8) The location manager now works with the new Apple protocols.

  6. (iOS 7, 8) The height of the graphics screen is now correct when it is accessed before the graphics screen has been viewed for the first time after a reboot.

  7. Comm.readHTTP no longer crashes when passed a bad file name.

  8. Using the Clear button to clear the console now works while a program is running.

  9. CLEAR no longer crashes when a program contains a SELECT CASE statement with a string case, but no TO case option.

  10. Reading from a closed file no longer causes a crash.

  11. Creating a plot with constant Y values for all points now generates a proper Y axis.

  12. Opening a disk stream after opening a TCP/IP stream no longer causes a crash.

  13. Comm.openTCP/IP no longer crashes if the IP string is empty.

  14. Fixed crash bugs in peripheralManagerDidStartAdvertising, peripheralManagerDidUpdateState and peripheralManagerIsReadyToUpdateSubscribers.

  15. Using ERR.description before an error occurred no longer causes a crash.

  16. Arcs drawn in an image are now oriented properly.

  17. Writing a string that is shorter than the buffer in a random access file now writes the entire string, not just the first character.

  18. Tap events are now reported for all controls, not just buttons.

  19. PRINT USING properly handles the _ character.

  20. BLECharacteristicInfo for a kind flag of 4 is now documented.

  21. (iOS 7) The backspace key now works properly.

  22. (iOS 7) The up and down keys now work with auto repeat.

  23. (iOS 7) The screen no longer jumps during scrolling with wrapped lines.

  24. Errors are automatically dismissed when scrolling is attempted.

  25. The focus is now placed on Find when the Find view opens.

  26. The BLEChat sample now sends the correct value for value2 in the SendText subroutine.

  27. Samples such as SensorTag now respect the techBASIC App Builder flag in System.device.

  28. Fixed a variable naming issue in the SensorTag and Thermometer samples.

techBASIC 3.3 Release Notes

Includes techBASIC App Builder and techBASIC Sampler

New Features

  1. Code completion helps you enter programs with suggested identifiers and reserved words.

  2. Text is colored by syntax.

  3. A new programming oriented editor shows lines without wrapping and supports horizontal scrolling.

  4. UDP support allows communication with devices that use UDP for communication.

  5. The barometer sensor on the iPhone 6 is supported.

  6. The keyboardChanged event notifies the program when the keyboard is shown or hidden.

  7. TextView.replaceText now allows replacement of a range of text in a TextView.

  8. Image.getCameraImage now has an optional parameter to specify that the image should come from the front camera.

  9. Comm.readHTTP now has an optional parameter to set the communications time out value.

  10. When emailing source, the source is now also included as an attachment.

  11. Integer exponents now get special treatment, so expressions like (-2.3)^2 work with no error.

See the Reference Manual or online help system for details.

Bug Fixes

  1. A memory leak in Graphics.drawImage has been fixed.

  2. A memory leak in Image.setImage has been fixed.

  3. Assignments of string array constants are now supported.

  4. Sensors.locationAvailable always returned YES; it now returns the result from CLLocationManager locationServicesEnabled.

  5. Certain uses of an undeclared variable as an array caused crashes. This has been fixed.

  6. PRINT USING did not always use comma characters correctly for formatting real numbers. This has been fixed.

  7. The PRINT USING format specifier “#.#^^^” now works for the value 1.

  8. Opening an HTTP or TCP/IP file that is already open no longer causes a crash.

  9. Several issues with the placement of breakpoints have been corrected.

  10. Running from a fresh boot, full screen apps no longer have a white band at the top and bottom.

  11. The iPhone 6 is now supported at the native resolution.

  12. Plotting points with a Y value of NaN no longer causes a crash.

  13. The Move dialog is formatted better on iPad.

  14. The debug bar no longer remains visible after a graphics program exits on the iPhone.

  15. Installing a new version of techBASIC no longer messes up aliases.

  16. The about page is formatted better on the iPhone 6.

  17. Assigning an array to itself no longer causes a crash.

  18. techBASIC App Builder sandbox files are no longer automatically included in the iCloud backup.

  19. Running under iOS 8, some camera images were rotated. This has been corrected.

  20. Unicode characters now work correctly with the GET, INPUT, and PUT statements and the LEN function.

  21. Stopping a program that contains a subroutine with no statements no longer causes a crash.

  22. Attempting to insert a row in a table at a negative row position now inserts the row at the start of the table instead of crashing.

  23. Using CLEAR at the start of the program no longer causes object variables to generate type conflicts.

  24. SEEK no longer fails for file positions greater than 32767.

  25. Type mismatch errors where the left operand is an object appear at the correct location, now.

techBASIC 3.3.1 Release Notes

Includes techBASIC App Builder and techBASIC Sampler

New Features

  1. The build number is now shown in the About view.

  2. GET and PUT now use LONG, not INTEGER, for subscripts, increasing the size of files they can handle.

  3. Arrays written to files with GET and PUT now use LONG sizes rather than INTEGER sizes, allowing longer arrays.

  4. The iPad Pro screen sizes are now directly supported.

  5. The tab key on external keyboard is now supported.

Bug Fixes

  1. LONG variables could cause a crash when used as function arguments for some functions and when running under the 64 bit techBASIC App Builder.

  2. An incompatibility with changes in iOS 9 resulted in BLEPeripheral.isConnected failing; this has been corrected.

  3. BLE classes that support the UUID call failed under iOS 9 due to changes in iOS 9; this has been corrected.

  4. retreiveConnectedPeripherals and retreivePeripherals are no longer supported by iOS, and has been deprecated in techBASIC. The calls still exists, but no longer do anything.

  5. An IF statement that has an ELSE clause with no statements in the ELSE clause no longer fails.

  6. Changes in iOS 9 caused numerous problems with external keyboards. These have been corrected.

  7. Polar coordinate plots that extended to infinity could leave drawing artifacts. This has been corrected.

techBASIC 3.3.2 Release Notes

Includes techBASIC Sampler

Note: The sole change in this version is a change to the editor. No changes were needed or made in techBASIC App Builder.

Bug Fixes

  1. A bug in iOS 10 caused copy and paste to stop working for source code files. A work-around is implemented.

techBASIC 3.3.3 Release Notes

Includes techBASIC Sampler

Note: The sole change in this version is a change to the editor. No changes were needed or made in techBASIC App Builder.

Bug Fixes

  1. techBASIC crashed when creating a new program while running under iOS 8. This crash bug has been corrected.