http://insanity4004.blogspot.com/2019/04/simulating-vfd-gridanode-driver.html

Simulating the VFD Grid/Anode driver

I was reading through an old posting about the VFD Grid and Anode driver circuit I’m planning to use, when it occurred to me that the resistor between the base of the PNP transistor and the collector of the NPN transistor might not be necessary. This is labeled R1 in the schematic to the right.

To calculate the desired resistance I’d done a bunch of hand calculations in my notebook, trying various combinations of target currents and resistor values. I started to do yet another with R1 set to zero when it occurred to me that this would be easier to do in simulation. At first I entered this circuit into LTspice using 2N3904 and 2N3906 transistors, as these are standard parts in the LTspice library. The simulation results matched my hand-calculated numbers, which gave me confidence that I’d done the calculations properly. I’m driving both transistors into saturation, and my turn-off times are anything but critical, so the choice of transistor isn’t critical.

Then I wondered how closely this approximation matched the real Toshiba RN4604. At first I thought this would be a challenge, as the process for creating a Spice model description for a transistor from its datasheet isn’t that easy. Wouldn’t it be nice if Toshiba provided a Spice model? Well, they do, and it’s available for download from their website. To make it easier to probe the base current of Q1A (Q1 in the Spice schematic) I extracted the transistor models from the subcircuits that add the built-in bias resistors and substituted them into my circuit.

My original plan had been to turn on Q1A by passing about 500 µA through its base. This was based on the spec’d saturation ICE of 5 mA with IBE of 250 µA, giving an hFE of 20. In the actual application I’ve found a grid draws about 6 mA and its 10K pull-down resistor will draw another 3 mA, so I doubled IBE for an ICE of 10 mA. If I eliminate R1 the base current jumps to 606 µA. But this puts almost the full 30 volts across the input (between pins 1 and 2); the datasheet graphs stop with an input voltage of 9 V. Even with the original R1 of 10K the input voltage is almost 25 V. So I’m thinking I should revisit this.

Looking at the hFE graphs I see the worst-case (at -25°C!) current gain at 30 mA is about 100. Of course this is in the transistor’s linear region, but it implies that with a base current of 300 µA and a collector current of only 10 mA the thing will be saturated. So I tweaked my Spice simulation to sweep the value of R1 from 100 ohms to 150 Kohms. I graphed the base and collector currents of the transistor, along with the “input” voltage (the difference between pins 1 and 2 on the package). I also changed the collector load resistor to 1 KΩ to get about 30 mA collector current if the transistor was saturated. This would make it more obvious when decreasing the base drive would start having a significant effect on the collector current.

The trick to interpreting these graphs is to remember that this is a PNP transistor in a common-emitter configuration, so the base and collector currents are negative. Thus a rise in the graph means less current. Also, the horizontal scale represents ohms, even though it’s reported in volts. So the “100KV” tick actually represents 100 KΩ.

It’s pretty obvious I don’t need 500 µA of base current. In fact, it looks like I could make R1 as high as 100 KΩ and still drive this transistor into saturation. Setting R1 to 63 KΩ gives me 250 µA of base current, while 47 KΩ gives me 295 µA. I’ll probably choose 47 KΩ to allow a generous margin for variations in bias resistor values, which can vary

http://www.intel4004.com/

http://www.4004.com/

http://e4004.szyc.org/

 Intel 4004 Microprocessor The emulator, assembler and disassembler is written in JavaScript, so they are easy to execute on whatever platform with the internet browser and implemented JavaScript interpreter. The MCS-4 utilities core and GUI are based on the brilliant virtual 6502 emulator by Norbert Landsteiner, e-tradition.net. This program is provided for free and AS IS, therefore without any warranty.

https://wiki.analog.com/university/courses/electronics/electronics-lab-28

# Wiki

This version (23 Aug 2019 14:04) was approved by amiclaus.The Previously approved version (05 Mar 2019 12:36) is available.

# Build CMOS Logic Functions Using CD4007 Array

## Objective:

The objective of this lab activity is to build the various CMOS logic functions possible with the CD4007 transistor array. The CD4007 contains 3 complementary pairs of NMOS and PMOS transistors.

## Making inverters with the CD4007 transistor array

Below in figure 1 is the schematic and pinout for the CD4007:

Figure 1 CD4007 CMOS transistor array pinout

# RLC MŮSTEK

Návod k obsluze

## Obsah

RLC můstek TESLA TM 393 je určen k měření odporů, indukčností a kapacit. Je pro provoz ze střídavé sítě a je konstruován jako provozní přístroj, kterého lze použít i pro méně přesná měření laboratorní. Široké měřicí rozsahy umožňují jeho použití v silno- i slaboproudé elektrotechnice k měření jednotlivých částí nízko- i vysokofrekvenčních obvodů.

Konstrukčně náleží do řady provozních přístrojů TESLA, konstruovaných v kovové skřínce s rukojetí.

## POPIS

Přístroj sestává z vlastního můstku, ze zesilovače s usměrňovačem, z nízkofrekvenčního oscilátoru, z můstkového napájecího zdroje a galvanometru.

Veškeré tyto části jsou vestavěny do společné skříně.

### Můstek

Řada normálních odporů a cejchovaný potenciometr tvoří vlastní můstek, který obsáhne rozsah dvou dekád. Pro měření kapacit přepojuje se do jednoho ramene pevný kapacitní normál 10.000 pF a potenciometr pro vyrovnávání ztrátového úhlu. Při měření indukčností se do tohoto ramene zapojuje kapacitní normál 0,1 uF a event. druhý potenciometr pro vyrovnávání ztrátového úhlu paralelně ke kapacitnímu normálu. Z tohoto důvodu jsou pro měření indukčnosti na přepínači K4 dvě polohy pro měření indukčnosti.

### Zesilovač

Vestavěný zesilovač je v provozu vždy při měření kapacit a indukčností a při měření odporů pouze tehdy, měří-li se střídavým napětím. Zesilovač je dvoustupňový a zapojuje se do diagonály mostu přepínačem K 3, je-li tento přepínač v poloze ~. První stupeň zesilovače má elektronku EF 22, v jejímž anodovém okruhu je filtr LC, který slouží k omezení nižších frekvencí, hlavně síťové, kapacitně přenesené na měřený objekt. Za tímto filtrem je potenciometr, kterým se nastavuje citlivost zesilovače. Druhý stupeň je elektronka EBL 21, zapojená jako triodový zesilovač. Diodový systém této elektronky usměrňuje získaný signál pro galvanometr.

### Nízkofrekvenční oscilátor

Nízkofrekvenční oscilátor je tvořen obvodem LC v obvyklém zapojení a jako oscilační elektronky je použito EF 22. Oscilátor slouží k napájení můstku při měření střídavým napětím a jeho kmitočet je přibližně 400 c/s.

### Napájecí zdroj

Napájecí zdroj je tvořen síťovým trasformátorem a usměrňovací elektronkou AZ l s příslušnými vyhlazovacími kapacitami a odpory. Dodává anodové napětí pro zesilovač, žhavící napětí pro elektronky a střídavé napětí pro suchý usměrňovač, ze kterého se napájí můstek při měření stejnosměrným napětím.

### Galvanometr

Galvanometr je normální ručkový přístroj s nulou uprostřed, takže při měření odporů stejnosměrným napětím indikuje i směr rozladění mostu. Při měření střídavým napětím se vychyluje ručka pouze jedním směrem.

### Příslušenství

Jako příslušenství je k přístroji dodávána síťová šňůra „Flexo” a sáček s náhradními pojistkami pro síť 220 i 120 V.

### Připojeni na síť

Před připojením na síť je nutné přístroj přepnout na jmenovité napětí sítě přepojovačem napětí, umístěným na zadní straně přístroje. Přepnutí provedeme po uvolnění zajišťovacího kovového pásku, vytažením a zasunutím přepínacího kotoučku tak, aby číslo udávající napětí bylo postaveno proti trojúhelníčkové značce (obr. 2). Zajišťovací pásek opět připevníme. Vlevo vedle voliče napětí je síťová pojistka P a dále síťová zástrčka. Vpravo od voliče je anodová pojistka Pa (obr. 3).

Síť zapínáme knoflíkem K2 (povytažením nebo pootočením doprava), přičemž se rozsvítí signální žárovka Z.

Kryt přístroje je zapojen na ochranný vodič.

## MĚŘENÍ

### Měření odporů stejnosměrným napětím (obr. 4)

Stejnosměrným napětím lze měřit veškeré ohmické odpory, bez ohledu na jalovou složku. Měřený odpor připojíme na svorky RLC a vytažením

(pootočením) knoflíku K2 uvedeme přístroj do provozu. Přepínač K3 přepneme do polohy = a přepínač K4 zapneme do polohy R.

Knoflíkem K2 nastavíme citlivost tak, aby ručka galvanometru nebyla vychýlena až na doraz. Měrný potenciometr postavíme přibližně do střední polohy a přepínačem K 5 přepneme do té polohy, ve které je výchylka galvanornetru nejmenší. Podle potřeby zvýšíme citlivost knoflíkem K2.

Nastavením potenciometru Kl (hrubě velkým knoflíkem a jemně malým knoflíkem) vyvážíme most tak, až ručka galvanornetru ukazuje na nulu. Při takto vyváženém mostě odečteme údaj na síupnici knoflíku K1 a násobíme ho číslem, na které ukazuje šipka přepínače rozsahů K5.

Při měření stejnosměrným napětím jsou funkce knoflíků K6 a K7 vyřazeny a nezáleží na tom, jak jsou knoflíky nastaveny.

### Měření velmi malých odporů

Při měření velmi malých odporů je nutné dbát, aby byl vyloučen vliv přechodových odporů. Veškeré tyto odpory měříme tak, že provedeme dvoje měření. Za prvé změříme přechodové odpory tak, že přepínač K5 postavíme do polohy 0,1 Ω a svorky RLC spojíme nakrátko silným drátem. Nyní vyvážíme most a na stupnici Kl odečteme přechodový odpor Rp. Přepínači přístroje dále nemanipulujeme, zkracovací drát odpojíme ze svorek RLC a na jeho místo připojíme malý odpor, který má být změřen. Knoflíkem Kl most znovu vyvážíme a odečteme naměřenou hodnotu Rs. Správná hodnota měřeného odporu je pak rozdíl obou naměřených hodnot, tedy

R = Rs – Rp.

Protože stupnice knoflíku Kl je cejchována přímo v ohmech, je i výsledek měření udán přímo v těchto jednotkách.

### Měření odporů střídavým napětím

Střídavým napětím lze měřit pouze odpory čistě ohmické nebo odpory s velmi malou složkou kapacitní nebo induktivní. Měřený odpor připojujeme rovněž na svorky RLC, přepínač K4 zůstane v poloze R, přepínač K3 přepneme do polohy ~. Potenciomelrem K2 nastavíme menší citlivost tak, aby ručka galvanometru nebyla vychýlena až na doraz. Přepínačem K5 najdeme polohu, při které je výchylka ručky nejmenší a knoflíkem K1 vyvážíme pak můstek na nulu. Knoflíkem K 2 zvýšíme citlivost a opětným dostavením potenciometru K1 můstek znovu vyválíme. Jestliže je poteneiometrem K2 nastavena velká citlivost zesilovače, nevrátí se ručka galvanometru na nulu, což je způsobeno vlastním šumem zesilovače, a pak vyvažujeme most na nejmenší výchylku, bez ohledu na to, že ručka neukazuje na nulu. I v tomto případě jsou potenciometry K6 a K7 mimo provoz a nezáleží na jejich postavení. Naměřenou hodnotu odečítáme již známým způsobem.

### Měřeni kapacit (obr. 5)

Kapacity se měří pouze střídavým napětím a přepínač K3 musí být proto v poloze ~. Přepínač K4 přepneme do polohy C a měřený kondensátor připojíme na svorky RLC. Potenciometrem K2 nastavíme zprvu malou citlivost, aby ručka galvanometru nebyla vychýlena až na doraz. Přepínačem rozsahů K5 přepneme do polohy nejmenší výchylky indikátoru a most vyvážíme potenciometrem K1. Citlivost zesilovače zvýšíme a opětným dostavením knoflíku Kl vyvážíme most. Protože měřená kapacita způsobí kvalitou svého dielektrika jisté zbytkové napětí, které není s napětím procházejícím čistou kapacitou ve fázi, je ve větvi, ve které je zapojen kapacitní normál, též potenciometr K7, kterým se vliv ztrátového úhlu měřené kapacity kompensuje.

Je tedy nutné po vyvážení mostu tímto potenciometrem, označeným na panelu „tg δ”, pootočit tak, aby se výchylka snížila. Opětným dostavením potenciometru K1 vyvážíme most. Naměřenou kapacitu čteme na stupnici knoflíku K1 a násobíme ji číslem, proti kterému je postaven přepínač rozsahů K5.

Údaj knoflíku K7 není cejchován, lze však podle jeho polohy posuzovat jakost dielektrika.

### Měření malých kapacit

Při měření malých kapacit je nutné brát v úvahu i vlastní kapacitu svorek přístroje, která je asi 2 pF, a přívodů, není-li kondensátor připojován přímo na svorky přístroje. Měříme-li malou kapacitu s přívodními dráty, musíme předem změřit kapacitu těchto drátů, při čemž má být jejich poloha stejná při připojeném i odpojeném kondensátoru. Druhé měření pak provedeme s připojeným kondensátorem a výsledná kapacita měřeného kondensátoru je dána rozdílem obou naměřených kapacit.

### Měření indukčností (viz obr. 6 a 7)

Pro měření indukčnosti jsou na přepínači K4 dvě polohy. Důvodem pro to je, že měřicí rozsah indukčností je velký a tím jsou i velmi rozdílné ztrátové složky měřených indukčností. Těmto polohám odpovídají i oba potenciometry K6 a K7. Je-li funkční přepínač K4 v poloze Ls, vyrovnáváme ztrátovou složku potenciometrem K6, který je v tomto případě zapojen v sérii s vestavěným kapacitním normálem. Přepneme-li funkční přepínač K4 do polohy Lp, vyrovnáváme ztrátovou složku potenciometrem K7, který se v této poloze připojuje ke kapacitnímu normálu paralelně. Všeobecně lze říci, že měření cívek je nutné provádět v té poloze přepínače K4, ve které můžeme příslušným potenciometrem pro vyrovnání ztrátové složky nastavit minimální výchylku indikátoru.

Při měření indukčností je tedy nutné přepnout přepínač K3 do polohy ~, přepínač K4 do polohy Ls nebo Lp a měřenou indukčnost připojit na svorky RLC. Potenciometrem K 2 nastavíme menší citlivost, aby vyvažování můstku bylo snazší. Přepínačem K5 přepneme do té polohy, ve které je výchylka galvanometru nejmenší, a knoflíkem Kl vyvážíme most.

Potenciometrem pro ztrátovou složku, odpovídajícím poloze přepínače K4, otáčíme tak, aby se výchylka galvanometru dále snížila. Nelze-li otáčením potenciometru dosáhnout minima výchylky, musíme přepínač K4 přepnout do druhé polohy pro měření indukčností a vyrovnat ztrátovou složku potenciometrem příslušným této poloze. Po dosažení nižší výchylky galvanometru musíme můstek knoflíkem K1 znovu vyvážit a po zvýšení citlivosti knoflíkem K2 tento postup opakovat, až dosáhneme nejnižší výchylky obsluhou knoflíku K1 a příslušného potenciometru pro ztrátovou složku. Po takovém vyvážení můstku čteme pak naměřenou indukčnost na stupnici knoflíku K1 a násobíme ji číslem, proti kterému je nastavena šipka přepínače K5. Naměřená indukčnost je pak udána v jednotkách, které označuje šipka přepínače K5, buď v mH nebo v H.

## TECHNICKÉ ÚDAJE

 Rozsah odporů: 0,01 Ω  — 10 MΩ, rozděleno do osmi rozsahů; možnost měření bud stejnosměrným nebo střídavým napětím. Rozsah indukčností: 0,01 mH — 1000 H; rozděleno do sedmi rozsahů. Rozsah kapacit: 1 pF — 100 μF, rozdělený do sedmi rozsahů. Přesnost měření: pro R a C ± 2%, při měření elektrolytických kondensátorů je přesnost horší; pro L ±3%. Vlastní kapacita svorek: cca 2 pF. Měrný kmitočet: cca 400 c/s. Galvanometr: ±100 μA s mechanickou nulou uprostřed. Elektronky: EF 22 —  první stupeň zesilovače, EBL 21 — druhý stupeň zesilovače, EF 22 — nf. oscilátor žárovka 6,3 V/0,3 A. Pojistky (obr. 3): síťová (P) pro 220 V … 0,4 A, pro 120 V … 1 A, anodová (Pa) … 0,1 A. Napájení: střídavé napětí 120 nebo 220 V, 50 c/s. Spotřeba: 30 W. Rozměry: šířka 320 mm, výška 265 mm, hloubka 225 mm. Váha: 9,4 kg.

## ROZPISKA EL. SOUČÁSTÍ

Odpory
Označení Druh Norma
R1 karta odporová XF 681 00
R2 karta odporová XF 681 00
R3 karta odporová XF 681 03
R4 karta odporová XF 681 02
R5 karta odporová XF 681 01
R6 odpor vrstvový P1A 0024 WK 181 03/M1/D
R7 odpor vrstvový P1A 0024 WK 181 03/M1/D
R8 potenciometr 1AN 690 04
R9 karta odporová 10K XF 681 01
R10 potenciometr 1AN 69003
R11 karta odporová 10K XF 681 02
R12 potenciometr NTN 150 WN 694 02/1k/N
R13+R21 potenciometr 1AN 698 01
R14 odpor vrstvový NTN 050 TR102 2M/A
R15 odpor vrstvový NTN 050 TR102 500/A
R16 odpor vrstvový NTN 050 TR103 M2/A
R17 odpor vrstvový NTN 050 TR103 M4/A
R18 odpor drátový NTN 053 TR601 10/A
R19 odpor vrstvový NTN 050 TR102 20
R20 odpor vrstvový NTN 050 TR103 20k/A
R22 odpor vrstvový NTN 050 TR104 32k/B
R23 odpor vrstvový NTN 050 TR102 10k/A
R24 odpor vrstvový NTN 050 TR102 10k/A
R25 odpor vrstvový NTN 050 TR103 1k/A
R26 odpor vrstvový NTN 050 TR102 10k
R27 odpor vrstvový NTN 050 TR104 32k/B
R28 odpor vrstvový NTN 050 TR102 64k/B
R29 odpor vrstvový NTN 050 TR102 M16/B
R30 odpor vrstvový NTN 050 TR104 10k/A

Dostavovací odpory
Označení Norma Dostavovací hodnoty
Rc NTN 050 TR 103 M32 nebo M5, M8, Ml, 1M25/A
Rd PIA 0024 WK 681 03 1M6 nebo 2M5, 4M, 5M, 6M4, 8M, 10 M/C
Re PIA 0024 WK 681 03 1M6 nebo 2M5, 4M, 5M, 6M4, 8M, 10M/C

Kondensátory
Označení Druh Norma
C1 slídový WK 714 08/5k/D
C2 styroflexový CK 724 21/M1/D
C3 elektrolytický NTN 092 TC 500 25M
C4 svitkový NTN 060 TC 103 M5/A
C5+C8 elektrolytický NTN 090 TC 521 16/16M
C6 svitkový NTN 060 TC 104 1k/A
C7 svitkový NTN 060 TC 104 1k/A
C9 svitkový NTN 060 TC 103 50k/B
C10 svitkový NTN 060 TC 103 40k/B
C11 elektrolytický NTN 092 TC 500 25M
C12 svitkový NTN 060 TC 103 Ml/A
C13+C14 elektrolytický NTN 090 TC 521 16/16M
C15 slídový NTN 073 TC 212 4k/B
C16 svitkový NTN 060 TC 106 5k
C17 svitkový NTN 060 TC 106 5k
C25 slídový NTN 073 TC 212 4k/B

Dostavovací kondensátory
Označení Norma Dostavovací hodnoty
Ca slídový WK 714 08 1k nebo 2k, 5k/B
Cb slídový WK 714 08 1k/B
Cc NTN 060 TC 103 16k nebo 5k, 10k/B

## SCHÉMA

Schéma se otevře ve zvláštním okně, protože je příliš velké pro vložení do textu.

## ZÁRUKA A OPRAVY

Výrobní závod poskytuje na každý dodaný přístroj 6měsíční záruku podle všeobecných záručních podmínek, platných pro prodej výrobků TESLA.

Vady, které se na výrobku vyskytnou během poskytované záruční doby a budou způsobeny chybami při výrobě nebo vadným materiálem, budou bezplatně opraveny. Záruka zaniká při porušení plomby výrobního závodu nebo při provedení jakýchkoliv vlastních zásahů do elektrické či mechanické funkce přístroje.

Veškeré opravy přístrojů v záruce i mimo záruční dobu provádí výrobní závod vlastní opravnou.

Bude-li někdy třeba zaslat přístroj k opravě nebo k přezkoušení, zašlete jej dobře zabalený s popisem závady na adresu:

TESLA
národní podnik
BRNO, Čechyňská 16. Opravna tel. č. 38753

Nascannoval a do html podoby upravil Ing. Petr Jeníček. Oproti originálu byl na začátek přidán obsah. Poslední změna dne 8.5.2005.

# Add MSP432 support to Arduino?

Does anyone know if MSP432 (black) can be added to the standard Arduino setup?

The reason: I’ve got an Adafruit Feather M0+ board working with Arduino, so the ARM Cortex-M compiler is “already there”. I’m hoping maybe I could remove Energia (since I don’t need the ‘430 support). If I add the JSON board file for the black MSP432 launch-pad, will the Arduino IDE get everything it needs to play with the MSP432?     https://energia.nu/packages/package_msp432_black_index.json

Also, is there a JSON file for the Tiva TM4C123 launch-pad?  (same reason, have a Tiva, want to move everything over to one IDE).

Thanks!

No, it is not possible as the Energia IDE includes specific features to support the multi-treading of the MSP432.

The black MSP432 is deprecated and no longer supported.

But I don’t care about that multitasking – does anyone know if it would work otherwise?

Yes, I know the black MSP432 has been abandoned, but I’m not going to throw away perfectly good hardware.

Thanks for the response!

On 1/11/2019 at 2:51 AM, mgh said:

Also, is there a JSON file for the Tiva TM4C123 launch-pad?  (same reason, have a Tiva, want to move everything over to one IDE).

Thanks!

not json but instructions given for linux

https://github.com/RickKimball/tivac-core

Assumes you have openocd and arm-none-eabi-gcc in your path. Probably won’t work for windows. Probably will work for OSX.

Although the Arduino IDE should be able to consume the Energia packages, there is a difference between the arduino-builder in Arduino and Energia which makes the msp432 package incompatible with the Arduino IDE. See the pull request here: https://github.com/arduino/arduino-builder/pull/119. I have it on my list to find a different solution and be able to use the stock arduino-builder at which point the Arduino IDE should be able to consume the Energia package.

For TivaC and MSP430, it is possible to use it in the Arduino IDE. Just put this in the preferences: http://energia.nu/packages/package_energia_index.json. Then pull up the board manager and install TivaC support.

Wow! Thank you Rick, thank you @energia! I’ll try some of these this weekend.

If you want to use one single IDE for all the different boards, try

All come as freemium: free for basic features; one-time-fee or subscription for more advanced features.

## Create an account

Register a new account

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

```{
"packages": [
{
"name": "energia",
"maintainer": "Energia",
"websiteURL": "http://www.energia.nu/",
"email": "make@energia.nu",
"help": {
"online": "http://energia.nu/reference"
},
"platforms": [
{
"name": "Energia MSP430 boards",
"architecture": "msp430",
"version": "1.0.5",
"category": "Energia",
"archiveFileName": "msp430-1.0.5.tar.bz2",
"checksum": "SHA-256:f40371d7e5140be6ce671aa33ca686b6d0fdfe6fd480dcb5d8dd79a87ce23305",
"size": "2077472",
"boards": [
{"name": "MSP-EXP430F5529"},
{"name": "MSP-EXP430FR2433"},
{"name": "MSP-EXP430FR4133"},
{"name": "MSP-EXP430FR5969"},
{"name": "MSP-EXP430FR6989"},
{"name": "MSP-EXP430FR5739"},
{"name": "MSP-EXP430FR2355"},
{"name": "MSP-EXP430FR2231"},
{"name": "MSP-EXP430G2"},
{"name": "MSP-EXP430G2ET"},
{"name": "MSP-EXP430FR5994"}
],
"toolsDependencies": [
{

"packager":"energia",
"name":"msp430-gcc",
"version":"4.6.6"
},
{
"packager":"energia",
"name":"dslite",
"version":"8.2.0.1400"
},
{
"packager":"energia",
"name":"mspdebug",
"version":"0.24"
}
]
},
{
"name": "Energia MSP430 boards",
"architecture": "msp430",
"version": "1.0.4",
"category": "Energia",
"archiveFileName": "msp430-1.0.4.tar.bz2",
"checksum": "SHA-256:84f752999538be0da7305f25a87ccf487008510404182feecbd6e4276642e6f2",
"size": "2076765",
"boards": [
{"name": "MSP-EXP430F5529"},
{"name": "MSP-EXP430FR2433"},
{"name": "MSP-EXP430FR4133"},
{"name": "MSP-EXP430FR5969"},
{"name": "MSP-EXP430FR6989"},
{"name": "MSP-EXP430FR5739"},
{"name": "MSP-EXP430FR2355"},
{"name": "MSP-EXP430FR2231"},
{"name": "MSP-EXP430G2"},
{"name": "MSP-EXP430G2ET"},
{"name": "MSP-EXP430FR5994"}
],
"toolsDependencies": [
{

"packager":"energia",
"name":"msp430-gcc",
"version":"4.6.6"
},
{
"packager":"energia",
"name":"dslite",
"version":"8.2.0.1400"
},
{
"packager":"energia",
"name":"mspdebug",
"version":"0.24"
}
]
},
{
"name": "Energia MSP430 boards",
"architecture": "msp430",
"version": "1.0.3",
"category": "Energia",
"archiveFileName": "msp430-1.0.3.tar.bz2",
"checksum": "SHA-256:cc4902a2bcaa43850c0e9a852f10bb5662b3eb4d4388e693d7d71c97bbdcb18a",
"size": "2072767",
"boards": [
{"name": "MSP-EXP430F5529"},
{"name": "MSP-EXP430FR2433"},
{"name": "MSP-EXP430FR4133"},
{"name": "MSP-EXP430FR5969"},
{"name": "MSP-EXP430FR6989"},
{"name": "MSP-EXP430FR5739"},
{"name": "MSP-EXP430G2"},
{"name": "MSP-EXP430FR5994"}
],
"toolsDependencies": [
{

"packager":"energia",
"name":"msp430-gcc",
"version":"4.6.5"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.4.0.1099"
},
{
"packager":"energia",
"name":"mspdebug",
"version":"0.24"
}
]
},
{
"name": "Energia MSP430 boards",
"architecture": "msp430",
"version": "1.0.2",
"category": "Energia",
"archiveFileName": "msp430-1.0.2.tar.bz2",
"checksum": "SHA-256:855ff60aacc129f8633cb4406dc28d1f3102d2edd05da0ba0b3123468bd1d06e",
"size": "2243478",
"boards": [
{"name": "MSP-EXP430F5529LP"},
{"name": "MSP-EXP430FR4133"},
{"name": "MSP-EXP430FR5969"},
{"name": "MSP-EXP430FR6989"},
{"name": "MSP-EXP430G2"}
],
"toolsDependencies": [
{

"packager":"energia",
"name":"msp430-gcc",
"version":"4.6.4"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.2.0.2096"
},
{
"packager":"energia",
"name":"mspdebug",
"version":"0.24"
}
]
},
{
"name": "Energia MSP430 boards",
"architecture": "msp430",
"version": "1.0.1",
"category": "Energia",
"archiveFileName": "msp430-1.0.1.tar.bz2",
"checksum": "SHA-256:3d687d768013a46a580f0b24fb7e7458bc7175e9a60ecb212ea7cb4bfcd80261",
"size": "2115215",
"boards": [
{"name": "MSP-EXP430F5529LP"},
{"name": "MSP-EXP430FR4133"},
{"name": "MSP-EXP430FR5969"},
{"name": "MSP-EXP430FR6989"},
{"name": "MSP-EXP430G2"}
],
"toolsDependencies": [
{

"packager":"energia",
"name":"msp430-gcc",
"version":"4.6.3"
},
{
"packager":"energia",
"name":"dslite",
"version":"6.2.1.1594"
},
{
"packager":"energia",
"name":"mspdebug",
"version":"0.22"
}
]
},
{
"name": "Energia MSP432E Ethernet RED boards",
"architecture": "msp432e",
"version": "5.19.0",
"category": "Energia",
"archiveFileName": "msp432e-5.19.0.tar.bz2",
"checksum": "SHA-256:9d4a549ab2a5e810ee9da352dfe12b757d79a6ef2a0b9161a9c43e7fd0d42e33",
"size": "35290227",
"boards": [
{"name": "MSP_EXP432E401Y"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"6.3.1-20170620"
},
{
"packager":"energia",
"name":"dslite",
"version":"8.0.0.1202"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.3"
}
]
},
{
"name": "Energia MSP432 EMT RED boards",
"architecture": "msp432r",
"version": "5.23.1",
"category": "Energia",
"archiveFileName": "msp432r-5.23.1.tar.bz2",
"checksum": "SHA-256:cda2b25b13920933336c95d90f555a30fc49dfbbd5477c0cf8c29523ffbd0ec3",
"size": "31990061",
"boards": [
{"name": "MSP_EXP432P401R"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"6.3.1-20170620"
},
{
"packager":"energia",
"name":"dslite",
"version":"8.2.0.1400"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.4"
}
]
},
{
"name": "Energia MSP432 EMT RED boards",
"architecture": "msp432r",
"version": "5.6.3",
"category": "Energia",
"archiveFileName": "msp432r-5.6.3.tar.bz2",
"size": "28895842",
"boards": [
{"name": "MSP_EXP432P401R"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"6.3.1-20170620"
},
{
"packager":"energia",
"name":"dslite",
"version":"8.2.0.1400"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.4"
}
]
},
{
"name": "Energia MSP432 EMT RED boards",
"architecture": "msp432r",
"version": "5.6.2",
"category": "Energia",
"archiveFileName": "msp432r-5.6.2.tar.bz2",
"checksum": "SHA-256:bcde9150f6a4a703dd74dfc5fde92aa4d3ace45300188bc37f9545723576ec06",
"size": "28893313",
"boards": [
{"name": "MSP_EXP432P401R"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"6.3.1-20170620"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.2.0.2096"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.3"
}
]
},
{
"name": "Energia MSP432 EMT RED boards",
"architecture": "msp432r",
"version": "5.6.1",
"category": "Energia",
"archiveFileName": "msp432r-5.6.1.tar.bz2",
"checksum": "SHA-256:b2c1d36b95e5f8a5feebca25d4895ce98a46fa7d91604d4439430b62c2c2bcbd",
"size": "28738809",
"boards": [
{"name": "MSP_EXP432P401R"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"6.3.1-20170620"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.2.0.2096"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.3"
}
]
},
{
"name": "Energia MSP432 EMT RED boards",
"architecture": "msp432r",
"version": "5.6.0",
"category": "Energia",
"archiveFileName": "msp432r-5.6.0.tar.bz2",
"checksum": "SHA-256:fd320297acacdb3787f23e23f790770ff6242dbf86ee96702e1aaf8932aeb02e",
"size": "28738891",
"boards": [
{"name": "MSP_EXP432P401R"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"6.3.1-20170620"
},
{
"packager":"energia",
"name":"dslite",
"version":"6.2.1.1624"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia MSP432 EMT RED boards",
"architecture": "msp432r",
"version": "4.9.1",
"category": "Energia",
"archiveFileName": "msp432r-4.9.1.tar.bz2",
"size": "21093293",
"boards": [
{"name": "MSP_EXP432P401R"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{
"packager":"energia",
"name":"dslite",
"version":"6.2.1.1624"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia MSP432 EMT RED boards",
"architecture": "msp432r",
"version": "4.9.0",
"category": "Energia",
"archiveFileName": "msp432r-4.9.0.tar.bz2",
"size": "21092774",
"boards": [
{"name": "MSP_EXP432P401R"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{
"packager":"energia",
"name":"dslite",
"version":"6.2.1.1624"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia TivaC boards",
"architecture": "tivac",
"version": "1.0.3",
"category": "Energia",
"archiveFileName": "tivac-1.0.3.tar.bz2",
"size": "2239118",
"boards": [
{"name": "EK-TM4C123GXL"},
{"name": "EK-TM4C1294XL"},
{"name": "EK-LM4F120XL"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"6.3.1-20170620"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.2.0.2096"
}
]
},
{
"name": "Energia TivaC boards",
"architecture": "tivac",
"version": "1.0.2",
"category": "Energia",
"archiveFileName": "tivac-1.0.2.tar.bz2",
"checksum": "SHA-256:932d7d66dddf9ce4e498b737157c671b668cb450536f7223186e03955ae08041",
"size": "2189817",
"boards": [
{"name": "EK-TM4C123GXL"},
{"name": "EK-TM4C1294XL"},
{"name": "EK-LM4F120XL"}
],
"toolsDependencies": [
{

"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{

"packager":"energia",
"name":"dslite",
"version":"6.2.1.1594"
}
]
},
{
"name": "Energia CC13xx boards",
"architecture": "cc13xx",
"version": "4.9.1",
"category": "Energia",
"archiveFileName": "cc13xx-4.9.1.tar.bz2",
"checksum": "SHA-256:9e1324c1f42ecb9b5f54b7eb33af40440809cda768e120e2d22a9d87a30d4b37",
"size": "24263837",
"boards": [
{"name": "LAUNCHXL_CC1310"},
{"name": "LAUNCHXL_CC1350"},
{"name": "CC1350STK"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.1.0.1917"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia CC13xx boards",
"architecture": "cc13xx",
"version": "4.9.0",
"category": "Energia",
"archiveFileName": "cc13xx-4.9.0.tar.bz2",
"checksum": "SHA-256:4cf43b44a52783bb55994feed5f305b0d26f6a0cee1746cfd14168023ab9c07b",
"size": "24260076",
"boards": [
{"name": "LAUNCHXL_CC1310"},
{"name": "LAUNCHXL_CC1350"},
{"name": "CC1350STK"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.1.0.1917"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia CC13xx boards",
"architecture": "cc13xx",
"version": "3.7.4",
"category": "Energia",
"archiveFileName": "cc13xx-3.7.4.tar.bz2",
"checksum": "SHA-256:b1fc52867179ac4b0bb69ef1f877de76ab0a8d2124d16df7bb1ed4585afba884",
"size": "5008614",
"boards": [
{"name": "LAUNCHXL_CC1310"},
{"name": "LAUNCHXL_CC1350"},
{"name": "CC1350STK"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.1.0.1917"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia CC13xx boards",
"architecture": "cc13xx",
"version": "3.7.3",
"category": "Energia",
"archiveFileName": "cc13xx-3.7.3.tar.bz2",
"checksum": "SHA-256:55c3cd4265f65119cc6ed60dc1920a5f9762850fa0d8810f6a7735f14453bb5c",
"size": "5008347",
"boards": [
{"name": "LAUNCHXL_CC1310"},
{"name": "LAUNCHXL_CC1350"},
{"name": "CC1350STK"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.1.0.1917"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia CC13xx boards",
"architecture": "cc13xx",
"version": "3.7.2",
"category": "Energia",
"archiveFileName": "cc13xx-3.7.2.tar.bz2",
"checksum": "SHA-256:0183e193755d6557e33d5d505c74d63f580dfbc3b424b028723e8242aa851484",
"size": "5007077",
"boards": [
{"name": "LAUNCHXL_CC1310"},
{"name": "LAUNCHXL_CC1350"},
{"name": "CC1350STK"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.1.0.1917"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia CC13xx boards",
"architecture": "cc13xx",
"version": "3.7.1",
"category": "Energia",
"archiveFileName": "cc13xx-3.7.1.tar.bz2",
"checksum": "SHA-256:4eebf0ac52fe10be6e88482debeb51727b25a6ab1f7b28ec2417260a9132cdaf",
"size": "5007403",
"boards": [
{"name": "LAUNCHXL_CC1310"},
{"name": "LAUNCHXL_CC1350"},
{"name": "CC1350STK"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{
"packager":"energia",
"name":"dslite",
"version":"6.2.1.1624"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia CC13xx boards",
"architecture": "cc13xx",
"version": "3.7.0",
"category": "Energia",
"archiveFileName": "cc13xx-3.7.0.tar.bz2",
"checksum": "SHA-256:9187d55612bf9681b76b1c20fd960021f93f869538e886cf6e109b31b7e5b0dc",
"size": "5007247",
"boards": [
{"name": "LAUNCHXL_CC1310"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{
"packager":"energia",
"name":"dslite",
"version":"6.2.1.1624"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia CC13xx boards",
"architecture": "cc13xx",
"version": "3.6.1",
"category": "Energia",
"archiveFileName": "cc13xx-3.6.1.tar.bz2",
"size": "4991866",
"boards": [
{"name": "LAUNCHXL_CC1310"}
],
"toolsDependencies": [
{
"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{
"packager":"energia",
"name":"dslite",
"version":"6.2.1.1624"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia CC3220 EMT boards",
"architecture": "cc3220emt",
"version": "5.6.2",
"category": "Energia",
"archiveFileName": "cc3220emt-5.6.2.tar.bz2",
"checksum": "SHA-256:be0c700217218db893a504234c5dea5b9618ab7e23dfe9a370db59784de2994e",
"size": "25967822",
"boards": [
{"name": "CC3220S-LAUNCHXL"},
{"name": "CC3220SF-LAUNCHXL"}
],
"toolsDependencies": [
{

"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"6.3.1-20170620"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.4.0.1099"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.3"
}
]
},
{
"name": "Energia CC3220 EMT boards",
"architecture": "cc3220emt",
"version": "5.6.1",
"category": "Energia",
"archiveFileName": "cc3220emt-5.6.1.tar.bz2",
"checksum": "SHA-256:192561fd563691c6e1559f35d8cfa8b335d77172264d491b55c000d580608110",
"size": "25969772",
"boards": [
{"name": "CC3220S-LAUNCHXL"},
{"name": "CC3220SF-LAUNCHXL"}
],
"toolsDependencies": [
{

"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"6.3.1-20170620"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.4.0.1099"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia CC3220 EMT boards",
"architecture": "cc3220emt",
"version": "5.6.0",
"category": "Energia",
"archiveFileName": "cc3220emt-5.6.0.tar.bz2",
"size": "25970182",
"boards": [
{"name": "CC3220S-LAUNCHXL"},
{"name": "CC3220SF-LAUNCHXL"}
],
"toolsDependencies": [
{

"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"6.3.1-20170620"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.2.0.2096"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia CC3220 EMT boards",
"architecture": "cc3220emt",
"version": "4.9.0",
"category": "Energia",
"archiveFileName": "cc3220emt-4.9.0.tar.bz2",
"checksum": "SHA-256:e59c6ba609c99c2ec6ee3856e78962c0b3301af2f67a5de42ec50e543c707919",
"size": "19051776",
"boards": [
{"name": "CC3220S-LAUNCHXL"},
{"name": "CC3220SF-LAUNCHXL"}
],
"toolsDependencies": [
{

"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{
"packager":"energia",
"name":"dslite",
"version":"7.2.0.1988"
},
{
"packager":"energia",
"name":"ino2cpp",
"version":"1.0.2"
}
]
},
{
"name": "Energia CC3200 boards",
"architecture": "cc3200",
"version": "1.0.2",
"category": "Energia",
"archiveFileName": "cc3200-1.0.2.tar.bz2",
"size": "1791123",
"boards": [
{"name": "CC3200-LAUNCHXL"},
{"name": "RedBearLab CC3200"},
{"name": "RedBearLab WiFi Mini"},
{"name": "RedBearLab WiFi Micro"}
],
"toolsDependencies": [
{

"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{
"packager":"energia",
"name":"dslite",
"version":"6.2.1.1594"
},
{
"packager":"energia",
"name":"cc3200prog",
"version":"1.1.4"
}
]
},
{
"name": "Energia CC3200 boards",
"architecture": "cc3200",
"version": "1.0.3",
"category": "Energia",
"archiveFileName": "cc3200-1.0.3.tar.bz2",
"checksum": "SHA-256:69f9ac0980bac4ebb8803a161786215228557eba49051af86e980aa8c422cdca",
"size": "1790853",
"boards": [
{"name": "CC3200-LAUNCHXL"},
{"name": "RedBearLab CC3200"},
{"name": "RedBearLab WiFi Mini"},
{"name": "RedBearLab WiFi Micro"}
],
"toolsDependencies": [
{

"packager":"energia",
"name":"arm-none-eabi-gcc",
"version":"4.8.4-20140725"
},
{
"packager":"energia",
"name":"dslite",
"version":"6.2.1.1594"
},
{
"packager":"energia",
"name":"cc3200prog",
"version":"1.1.4"
}
]
}
],
"tools": [
{
"name":"msp430-gcc",
"version":"4.6.6",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/msp430-gcc-4.6.6-i686-mingw32.tar.bz2",
"archiveFileName":"msp430-gcc-4.6.6-i686-mingw32.tar.bz2",
"checksum":"SHA-256:3dbfe6453f461ae5d7599c3cf1144dc400852b6d788d298f3dd0004283a9202a",
"size":"30818330"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/msp430-gcc-4.6.6-i386-apple-darwin11.tar.bz2",
"archiveFileName":"msp430-gcc-4.6.6-i386-apple-darwin11.tar.bz2",
"checksum":"SHA-256:82d4df153a9d64a507a48ed3b5db9e21eeb069809976c8b69946801252b622bb",
"size":"32574759"
},
{
"host": "x86_64-linux-gnu",
"url": "https://s3.amazonaws.com/energiaUS/tools/linux64/msp430-gcc-4.6.6-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "msp430-gcc-4.6.6-i386-x86_64-pc-linux-gnu.tar.bz2",
"checksum": "SHA-256:41fbcb3cc73679186989e1fb27cb4578e9164f07d134e650e23089198b87cbfd",
"size": "98503002"
}
]
},
{
"name":"msp430-gcc",
"version":"4.6.5",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/msp430-gcc-4.6.5-i686-mingw32.tar.bz2",
"archiveFileName":"msp430-gcc-4.6.5-i686-mingw32.tar.bz2",
"checksum":"SHA-256:91496ceffdaf63562d28ca0e27d317f4e22048267efc754450f2b3cf37e69a88",
"size":"30758086"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/msp430-gcc-4.6.5-i386-apple-darwin11.tar.bz2",
"archiveFileName":"msp430-gcc-4.6.5-i386-apple-darwin11.tar.bz2",
"checksum":"SHA-256:9a85b83a0015d1219157e503d0515092171c1a49a9bd695fe14a4ddfbde66ffb",
"size":"32399439"
},
{
"host": "x86_64-linux-gnu",
"url": "https://s3.amazonaws.com/energiaUS/tools/linux64/msp430-gcc-4.6.5-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "msp430-gcc-4.6.5-i386-x86_64-pc-linux-gnu.tar.bz2",
"checksum": "SHA-256:0b5b4ee3e027aa88a8d86b1e5d6bd65f919084f3d3f8678475e4debdbbc930c9",
"size": "98367482"
}
]
},
{
"name":"msp430-gcc",
"version":"4.6.4",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/msp430-gcc-4.6.4-i686-mingw32.tar.bz2",
"archiveFileName":"msp430-gcc-4.6.4-i686-mingw32.tar.bz2",
"checksum":"SHA-256:21efce29cc6a83ddce3dbce241fcd235437ed1717f8268af169a6429d0c3d20d",
"size":"30753419"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/msp430-gcc-4.6.4-i386-apple-darwin11.tar.bz2",
"archiveFileName":"msp430-gcc-4.6.4-i386-apple-darwin11.tar.bz2",
"checksum":"SHA-256:e1628d6ddce2d0ee6f9134d3d1b20560cf98cda0cb09a9c33028b3a1d210603d",
"size":"32431529"
},
{
"host": "x86_64-linux-gnu",
"url": "https://s3.amazonaws.com/energiaUS/tools/linux64/msp430-gcc-4.6.4-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "msp430-gcc-4.6.4-i386-x86_64-pc-linux-gnu.tar.bz2",
"size": "98437003",
"checksum": "SHA-256:6595fd1dd4ebfd77aec31939e922fb4791e2c74185e908e1a4c27c50cb3b7440"
}
]
},
{
"name":"msp430-gcc",
"version":"4.6.3",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/msp430-gcc-4.6.3-i686-mingw32.zip",
"archiveFileName":"msp430-gcc-4.6.3-i686-mingw32.zip",
"size":"47733038"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/msp430-gcc-4.6.3-i386-apple-darwin11.tar.bz2",
"archiveFileName":"msp430-gcc-4.6.3-i386-apple-darwin11.tar.bz2",
"checksum":"SHA-256:b919d80880603b55c64b9095eb80d4005e82d7428b0d7ded3864c200cb4f847c",
"size":"32357793"
},
{
"host": "x86_64-linux-gnu",
"url": "https://s3.amazonaws.com/energiaUS/tools/linux64/msp430-gcc-4.6.3-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "msp430-gcc-4.6.3-i386-x86_64-pc-linux-gnu.tar.bz2",
"size": "87607164",
"checksum": "SHA-256:453832be5150f45a830ea5b0336a911f22fd7553f668a1e93a5c9e58f65f9f7f"
}
]
},
{
"name": "arm-none-eabi-gcc",
"version": "6.3.1-20170620",
"systems": [
{
"host": "i686-mingw32",
"url": "https://s3.amazonaws.com/energiaUS/tools/windows/gcc-arm-none-eabi-6.3.1-20170620-windows.tar.bz2",
"archiveFileName": "gcc-arm-none-eabi-6.3.1-20170620-windows.tar.bz2",
"checksum": "SHA-256:c28a5c2a5272d09bf396c2dcd4c3188ae0dd8ec04d0ce8f581b1995141fc9044",
"size": "110277553"
},
{
"host": "x86_64-apple-darwin",
"url": "https://s3.amazonaws.com/energiaUS/tools/macosx/gcc-arm-none-eabi-6.3.1-20170620-mac.tar.bz2",
"archiveFileName": "gcc-arm-none-eabi-6.3.1-20170620-mac.tar.bz2",
"size": "104268677"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "https://s3.amazonaws.com/energiaUS/tools/linux64/gcc-arm-none-eabi-6.3.1-20170620-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "gcc-arm-none-eabi-6.3.1-20170620-x86_64-pc-linux-gnu.tar.bz2",
"checksum": "SHA-256:0a98e8cf843c41fdfdfb74cfe5b27e7b0c6054ee92ea1277812513334b6ce02a",
"size": "100490382"
}
]
},
{
"name": "arm-none-eabi-gcc",
"version": "4.8.4-20140725",
"systems": [
{
"host": "i686-mingw32",
"archiveFileName": "gcc-arm-none-eabi-4.8.4-20140725-windows.tar.gz",
"url": "https://s3.amazonaws.com/energiaUS/tools/windows/gcc-arm-none-eabi-4.8.4-20140725-windows.tar.gz",
"size": "82014307"
},
{
"host": "x86_64-apple-darwin",
"url": "https://s3.amazonaws.com/energiaUS/tools/macosx/gcc-arm-none-eabi-4.8.4-20140725-mac.tar.bz2",
"archiveFileName": "gcc-arm-none-eabi-4.8.4-20140725-mac.tar.bz2",
"checksum": "SHA-256:66c9261fdd6d646931dfe940e8daf38d3b11cfba8a7e714c7a3811146b6dc9c7",
"size": "52518522"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "https://s3.amazonaws.com/energiaUS/tools/linux64/gcc-arm-none-eabi-4.8.4-20140725-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName": "gcc-arm-none-eabi-4.8.4-20140725-x86_64-pc-linux-gnu.tar.bz2",
"checksum": "SHA-256:00636c299e7a420212cdc1643d5c52d3e82eb66c8ce0e4693327cd1e936b52db",
"size": "68654066"
}
]
},
{
"name":"ino2cpp",
"version":"1.0.4",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/ino2cpp-1.0.4.tar.bz2",
"archiveFileName":"ino2cpp-1.0.4.tar.bz2",
"checksum":"SHA-256:f1409b404eb650931ab138aea642451d0706deb19210331d3bd62bfe79099f17",
"size":"537535"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/ino2cpp-1.0.4.tar.bz2",
"archiveFileName":"ino2cpp-1.0.4.tar.bz2",
"checksum":"SHA-256:f1409b404eb650931ab138aea642451d0706deb19210331d3bd62bfe79099f17",
"size":"537535"
},
{
"host": "x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/ino2cpp-1.0.4.tar.bz2",
"archiveFileName":"ino2cpp-1.0.4.tar.bz2",
"checksum":"SHA-256:f1409b404eb650931ab138aea642451d0706deb19210331d3bd62bfe79099f17",
"size":"537535"
}
]
},
{
"name":"ino2cpp",
"version":"1.0.4",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/ino2cpp-1.0.4.tar.bz2",
"archiveFileName":"ino2cpp-1.0.4.tar.bz2",
"checksum":"SHA-256:f1409b404eb650931ab138aea642451d0706deb19210331d3bd62bfe79099f17",
"size":"537535"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/ino2cpp-1.0.4.tar.bz2",
"archiveFileName":"ino2cpp-1.0.4.tar.bz2",
"checksum":"SHA-256:f1409b404eb650931ab138aea642451d0706deb19210331d3bd62bfe79099f17",
"size":"537535"
},
{
"host": "x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/ino2cpp-1.0.4.tar.bz2",
"archiveFileName":"ino2cpp-1.0.4.tar.bz2",
"checksum":"SHA-256:f1409b404eb650931ab138aea642451d0706deb19210331d3bd62bfe79099f17",
"size":"537535"
}
]
},
{
"name":"ino2cpp",
"version":"1.0.3",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/ino2cpp-1.0.3.tar.bz2",
"archiveFileName":"ino2cpp-1.0.3.tar.bz2",
"checksum":"SHA-256:562c9364db80affc5a5b51a79b70950680c77d7ee62244e18bc8b6f7c114fdeb",
"size":"485132"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/ino2cpp-1.0.3.tar.bz2",
"archiveFileName":"ino2cpp-1.0.3.tar.bz2",
"checksum":"SHA-256:562c9364db80affc5a5b51a79b70950680c77d7ee62244e18bc8b6f7c114fdeb",
"size":"485132"
},
{
"host": "x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/ino2cpp-1.0.3.tar.bz2",
"archiveFileName":"ino2cpp-1.0.3.tar.bz2",
"checksum":"SHA-256:562c9364db80affc5a5b51a79b70950680c77d7ee62244e18bc8b6f7c114fdeb",
"size":"485132"
}
]
},
{
"name":"ino2cpp",
"version":"1.0.2",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/ino2cpp-1.0.2.tar.bz2",
"archiveFileName":"ino2cpp-1.0.2.tar.bz2",
"checksum":"SHA-256:6f63041767f4f15b1da7b62aa3086e6912f9e05b19bfdf512d573bcc9ac7c9a5",
"size":"484493"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/ino2cpp-1.0.2.tar.bz2",
"archiveFileName":"ino2cpp-1.0.2.tar.bz2",
"checksum":"SHA-256:6f63041767f4f15b1da7b62aa3086e6912f9e05b19bfdf512d573bcc9ac7c9a5",
"size":"484493"
},
{
"host": "x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/ino2cpp-1.0.2.tar.bz2",
"archiveFileName":"ino2cpp-1.0.2.tar.bz2",
"checksum":"SHA-256:6f63041767f4f15b1da7b62aa3086e6912f9e05b19bfdf512d573bcc9ac7c9a5",
"size":"484493"
}
]
},
{
"name":"dslite",
"version":"8.2.0.1400",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/dslite-8.2.0.1400-i686-mingw32.tar.bz2",
"archiveFileName":"dslite-8.2.0.1400-mingw32.tar.bz2",
"checksum":"SHA-256:793a4ea6935fd3436cc7f861b23f353609969b951b62812641635bd467814e05",
"size":"33976575"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/dslite-8.2.0.1400-x86_64-apple-darwin.tar.bz2",
"archiveFileName":"dslite-8.2.0.140-x86_64-apple-darwin.tar.bz2",
"checksum":"SHA-256:366b9139052037e480fcba4b3a4fb5783b6336b93bd5e2f3034f479a8d502784",
"size":"17527708"
},
{
"host":"x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/linux64/dslite-8.2.0.1400-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName":"dslite-8.2.0.1400-i386-x86_64-pc-linux-gnu.tar.bz2",
"checksum":"SHA-256:f95b710f36786ba9d28c9cb96e05c812e7eba875afc69753007c8910c3bce7fd",
"size":"19182469"
}
]
},
{
"name":"dslite",
"version":"8.0.0.1202",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/dslite-8.0.0.1202-i686-mingw32.tar.bz2",
"archiveFileName":"dslite-8.0.0.1202-mingw32.tar.bz2",
"checksum":"SHA-256:88d45eac72682d35e907cefe101b9b32557d70a5044b872d2ac22594b87ae919",
"size":"33554889"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/dslite-8.0.0.1202-x86_64-apple-darwin.tar.bz2",
"archiveFileName":"dslite-8.0.0.1202-x86_64-apple-darwin.tar.bz2",
"size":"16963904"
},
{
"host":"x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/linux64/dslite-8.0.0.1202-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName":"dslite-8.0.0.1202-i386-x86_64-pc-linux-gnu.tar.bz2",
"checksum":"SHA-256:8d84a25eab60624fd216d1e8e76948ac6a218ff81cff5118c3942dc67ab78acb",
"size":"18783730"
}
]
},
{
"name":"dslite",
"version":"7.4.0.1099",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/dslite-7.4.0.1099-i686-mingw32.tar.bz2",
"archiveFileName":"dslite-7.4.0.1099-i686-mingw32.tar.bz2",
"checksum":"SHA-256:298f2d6df8f1122ce8ea437586dfba9c54d394144fdf7853509437a49b642bb8",
"size":"33486116"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/dslite-7.4.0.1099-x86_64-apple-darwin.tar.bz2",
"archiveFileName":"dslite-7.4.0.1099-x86_64-apple-darwin.tar.bz2",
"checksum":"SHA-256:445bfbf65a709e2e031c2670b7b0300d11b25f6a58953037f27b09c341fd7fc4",
"size":"17016539"
},
{
"host":"x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/linux64/dslite-7.4.0.1099-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName":"dslite-7.4.0.1099-i386-x86_64-pc-linux-gnu.tar.bz2",
"checksum":"SHA-256:187aeafd49f76d841f68d5fa9cac0dcdfce9aa401fd2f2b67bd9da5c14833f67",
"size":"18597835"
}
]
},
{
"name":"dslite",
"version":"7.2.0.1988",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/dslite-7.2.0.1988-i686-mingw32.tar.bz2",
"archiveFileName":"dslite-7.2.0.1988-i686-mingw32.tar.bz2",
"checksum":"SHA-256:248da7bf2e882587e6e51117b8ab53eb60793aa7362836fdbc0388774367d81c",
"size":"30119837"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/dslite-7.2.0.1988-x86_64-apple-darwin.tar.bz2",
"archiveFileName":"dslite-7.2.0.1988-x86_64-apple-darwin.tar.bz2",
"checksum":"SHA-256:aa80e246122096f26df9826c8a889c45abeac96f349234c9baff7e2f27f72c36",
"size":"15546846"
},
{
"host":"x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/linux64/dslite-7.2.0.1988-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName":"dslite-7.2.0.1988-i386-x86_64-pc-linux-gnu.tar.bz2",
"checksum":"SHA-256:f43171fac1c09567d22e070e0652dea43eebaf274467e2110cfb826f983054a0",
"size":"18074747"
}
]
},
{
"name":"dslite",
"version":"7.1.0.1917",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/dslite-7.1.0.1917-i686-mingw32.zip",
"archiveFileName":"dslite-7.1.0.1917-mingw32.zip",
"checksum":"SHA-256:e8ef665bfeaa9264a98771ea89d14f977e8e448116372f6883bb74dc703424a8",
"size":"36225191"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/dslite-7.1.0.1917-x86_64-apple-darwin.tar.bz2",
"archiveFileName":"dslite-7.1.0.1917-x86_64-apple-darwin.tar.bz2",
"checksum":"SHA-256:629fe0c3c5f066b9dd62e065ac8ba80c5fd260d15d6fe32006e200b9a58343ac",
"size":"15384479"
},
{
"host":"x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/linux64/dslite-7.1.0.1917-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName":"dslite-7.1.0.1917-x86_64-pc-linux-gnu.tar.bz2",
"checksum":"SHA-256:89fa13bec5e5504ccaef25a7d87464cf784c14870e66d7e149b8308839ab83de",
"size":"17793290"
}
]
},
{
"name":"dslite",
"version":"7.2.0.2096",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/dslite-7.2.0.2096-i686-mingw32.tar.bz2",
"archiveFileName":"dslite-7.2.0.2096-mingw32.tar.bz2",
"size":"33083804"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/dslite-7.2.0.2096-x86_64-apple-darwin.tar.bz2",
"archiveFileName":"dslite-7.2.0.2096-x86_64-apple-darwin.tar.bz2",
"checksum":"SHA-256:2a0282a4aae506edde5999e7cffd7e8d4daf3f98df4a5ee0dccf1bb71798f471",
"size":"16666963"
},
{
"host":"x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/linux64/dslite-7.2.0.2096-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName":"dslite-7.2.0.2096-i386-x86_64-pc-linux-gnu.tar.bz2",
"size":"19132835"
}
]
},
{
"name":"dslite",
"version":"6.2.1.1624",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/dslite-6.2.1.1624-i686-mingw32.zip",
"archiveFileName":"dslite-6.2.1.1624-i686-mingw32.zip",
"checksum":"SHA-256:fd673ea66fcd8051d91a0138dcddaf0b3104ca1c6b2e0eab0de8b2080ff70094",
"size":"34948605"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/dslite-6.2.1.1624-x86_64-apple-darwin.tar.bz2",
"archiveFileName":"dslite-6.2.1.1624-x86_64-apple-darwin.tar.bz2",
"checksum":"SHA-256:0a89afb99973ec2b4cf23be277ccc66cb2dc53fdd894924aa871b0e9882011e3",
"size":"15312608"
},
{
"host":"x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/linux64/dslite-6.2.1.1624-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName":"dslite-6.2.1.1624-i386-x86_64-pc-linux-gnu.tar.bz2",
"checksum":"SHA-256:401d9edd1956b87a7b89f162456a8444b2ac73d3d972f8f2231a150a7e384503",
"size":"17995725"
}
]
},
{
"name":"dslite",
"version":"6.2.1.1594",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/dslite-6.2.1.1594-i686-mingw32.zip",
"archiveFileName":"dslite-6.2.1.1594-i686-mingw32.zip",
"size":"33819921"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/dslite-6.2.1.1594-x86_64-apple-darwin.tar.bz2",
"archiveFileName":"dslite-6.2.1.1594-x86_64-apple-darwin.tar.bz2",
"size":"14735532"
},
{
"host":"x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/linux64/dslite-6.2.1.1594-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName":"dslite-6.2.1.1594-i386-x86_64-pc-linux-gnu.tar.bz2",
"checksum":"SHA-256:dfa17d2c26699e1480a13bd7f2941541417c59276ee38d30848e4606e1fba33b",
"size":"20539172"
}
]
},
{
"name":"mspdebug",
"version":"0.24",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/mspdebug-0.24-i686-mingw32.tar.bz2",
"archiveFileName":"mspdebug-0.24-i686-mingw32.tar.bz2",
"checksum":"SHA-256:7b3dfb269b58f692d03080a641f543dfe01bcfcef43935c2bb31e2839e284e73",
"size":"1058435"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/mspdebug-0.24-x86_64-apple-darwin.tar.bz2",
"archiveFileName":"mspdebug-0.24-x86_64-apple-darwin.tar.bz2",
"size":"171307"
},
{
"host":"x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/linux64/mspdebug-0.24-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName":"mspdebug-0.24-i386-x86_64-pc-linux-gnu.tar.bz2",
"checksum":"SHA-256:ec6131053a4ddd35b43d44591732313182e3487ffd77181df02ce23f0860a2e5",
"size":"147947"
}
]
},
{
"name":"mspdebug",
"version":"0.22",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/mspdebug-0.22.zip",
"archiveFileName":"mspdebug-0.22.zip",
"checksum":"SHA-256:e4d061b5cb1de2e17dc7f4fb5c3c6bd8c6f7a3ea013fa16e2332b408440236ec",
"size":"201798"
},
{
"host":"x86_64-apple-darwin",
"url":"http://www.energia.nu/tools/mspdebug-0.22-x86_64-apple-darwin.tar.bz2",
"archiveFileName":"mspdebug-0.22--x86_64-apple-darwin.tar.bz2",
"checksum":"SHA-256:efc469b4771367bd5e420eb7d6f36551df8da36dd130d2bbf184131b6876111e",
"size":"9891660"
},
{
"host":"x86_64-pc-linux-gnu",
"url":"http://www.energia.nu/tools/mspdebug-0.22-x86_64-apple-darwin.tar.bz2",
"archiveFileName":"mspdebug-0.22--x86_64-apple-darwin.tar.bz2",
"checksum":"SHA-256:efc469b4771367bd5e420eb7d6f36551df8da36dd130d2bbf184131b6876111e",
"size":"9891660"
}
]
},
{
"name":"cc3200prog",
"version":"1.1.4",
"systems":
[
{
"host":"i686-mingw32",
"url":"https://s3.amazonaws.com/energiaUS/tools/windows/cc3200prog-1.1.4-i686-mingw32.zip",
"archiveFileName":"cc3200prog-1.1.4-i686-mingw32.zip",
"checksum":"SHA-256:9701cf08a34c727355261eec502dfa44386b34b2d9cde863eb20c347d7a24f97",
"size":"400542"
},
{
"host":"x86_64-apple-darwin",
"url":"https://s3.amazonaws.com/energiaUS/tools/macosx/cc3200prog-1.1.4-x86_64-apple-darwin.tar.bz2",
"archiveFileName":"cc3200prog-1.1.4-x86_64-apple-darwin.tar.bz2",
"size":"164785"
},
{
"host":"x86_64-pc-linux-gnu",
"url":"https://s3.amazonaws.com/energiaUS/tools/linux64/cc3200prog-1.1.4-i386-x86_64-pc-linux-gnu.tar.bz2",
"archiveFileName":"cc3200prog-1.1.4-i386-x86_64-pc-linux-gnu.tar.bz2",
"size":"134860"
}
]
}
]
}
]
}```

Keyboard Matrix Scanning and Debouncing

# Intro

Without diving into the “why” part, I wanted to make yet another keyboard with Cherry MX keyswitches (just like everyone else these days), and I ended up deciding to make my own keyboard controller (again like everyone else). After all…

(customary https://xkcd.com/927/ )

Re: HELP WANTED ON ALGORITHMS
Message #19 Posted by Eric Smith on 27 Apr 2013, 12:49 p.m.,
in response to message #18 by Eddie W. Shore

Usually CORDIC isn’t used for logs and exponentials, although it is possible to do so by using hyperbolic CORDIC. CORDIC is in the general class of shift-and-add algorithms, and there is a simpler one for logs and exponential first published in 1624, only ten years after the invention of logarithms by Napier. I’m not sure whether the HP 9100A (1968) used Briggs’ algorithm, but all of HP’s handheld and handheld-derived calculators from the HP-35 (1972) through the Saturn-based and Saturn-emulating calculators have used it. Recent HP-designed calculators such as the HP 10bII+, 20b, 30b, and 49gII apparently use a math library based on that from Saturn calculators, so they presumably also use Briggs’ algorithm.

There is a good description of Briggs’ algorithm on Jacques Laporte’s “Briggs and the HP35” web page.

Another excellent reference for algorithms for transcendental functions is Elementary Functions: Algorithms and Implementations by Jean-Michel Muller, second edition, which covers many classes of algorithms including shift-and-add (Briggs’, CORDIC, and others), and has especially good coverage of accurate argument range reduction algorithms.

It should be noted that the HP algorithms for sine and cosine use CORDIC, but not in the most basic method normally described. Instead, they compute the tangent (or cotangent), and use an identity to compute the sine (or cosine) from it. This avoids an issue with each CORDIC iteration effectively multiplying the resulting sine and cosine by a scale factor; by using tangent (or cotangent), these scale factors cancel out. In binary CORDIC, the number of CORDIC iteration is fixed, so the result can be multiplied by the inverse of the product of the scale factors, which is constant. In decimal CORDIC as implemented by HP, the number of CORDIC iterations is variable, so it would take more work to compensate for the non-constant product of the scale factors.

For specifics of the algorithms used by HP, see:

Edited: 27 Apr 2013, 1:04 p.m.

Mainframes (Hercules, IBM)

https://keisan.casio.com/calculator

 Function list Input data storage
Expression
Mode Digit Answer  Accuracy Comma format
Editor

(-6.2 -7.6i)!
 ans1 -9.85941053E-11 +3.2965092E-12i
Function List
Inserted in the cursor position of Expression
Elementary Prob Bessel Sp1 Sp2
 Constant Elementary function Real numerical function Complex numerical function Sum Prod
 Input data storage File 105.Quadrilateral3 <01.Heron’s formula> <02.Three means> <03.Future value> <04.Trigonometric functions> <05.Radioactive decay> <06.Half-life> <10.sides of quadrilateral> <11.Pi Polygon Method> <90.complete elliptic integral> <91.Y(n,m,θ,φ)> <95.DE integration (a,∞)> <96.for-repeat sin(x)> <97.var-repeat sin(x)> <98.Colebrook by Simple> <98.Colebrook by Simple Ran> <98.Colebrook by Simple_Er> <98.Colebrook-White Eq> <98.Colebrook-White TableR> <98.Colebrook_HG1> <98.Colebrook_HG2> <98.Colebrook_HG2_Ac> <98.Colebrook_HG3> <98.Colebrook_HG3_Ac> <98.Colebrook_HG4> <98.Colebrook_SN1> <98.Colebrook_SN2>

https://medium.com/@ly.lee/build-your-iot-sensor-network-stm32-blue-pill-nrf24l01-esp8266-apache-mynewt-thethings-io-ca7486523f5d

# Build Your IoT Sensor Network — STM32 Blue Pill + nRF24L01 + ESP8266 + Apache Mynewt + thethings.io

May 27 · 18 min read

Law of Thermospatiality: Air-conditioning always feels too warm ANDtoo cold by different individuals in a sizeable room

http://www.xnumber.com/xnumber/cmhistory.htm

## History of Mechanical Calculators

 A Brief History of Mechanical Calculators James Redin From the Abacus to the electro-mechanical calculators. (Parts I, II and III)

 Part I The Age of the Polymaths Part II Crossing the 19th Century Part III Getting Ready for the 20th Century

http://www.rechenautomat.de/

# Mechanische Rechenmaschinen

#### Bilder und Aufsätze zur Automatisierung der mechanischen Rechentechnik

“Ein Automat (griech.) ist im weitern Sinn jede sich selbst bewegende mechanische Vorrichtung, die durch im Innern verborgene Kraftmittel (Federn, Gewichte etc.) in Bewegung gesetzt wird, z. B. Uhren, Planetarien u. dgl.; im engern Sinn ein mechanisches Kunstwerk, welches vermittelst eines innern Mechanismus die Thätigkeit lebender Wesen, der Menschen (Android) oder Tiere, nachahmt und meist auch an Gestalt diesen nachgebildet ist.” (aus Meyers Konversationslexikon von 1885-1892)

In der Fachliteratur verwendet(e) man den Begriff “Rechenautomat” meist im Zusammenhang mit (elektronischen) programmgesteuerten Rechenanlagen, die im technisch-wissenschaftlichen Bereich zum Einsatz kamen. Betrachtet man jedoch Prospekte von Büromaschinen-Herstellern aus den 1930er bis 1970er Jahren, so findet man auch dort Rechenautomaten im Angebot. Sie waren in unterschiedlichen Ausführungen erhältlich: von Halbautomaten bis hin zu “vollelektrischen Speicher-Superautomaten”. Es handelt sich hierbei um elektrisch angetriebene, aber mechanische Rechenmaschinen für den Einsatz im Büro sowie für Privatleute. Sie konnten teilweise oder vollständig eine Multiplikation oder Division ausführen und oftmals auch Rechenergebnisse zwischenspeichern. Manche von ihnen waren sogar in der Lage, selbsttätig eine Wurzel zu berechnen. In diesem Sinne sind die vollautomatischen Rechenmaschinen die mechanischen Vorläufer unserer heutigen elektronischen Taschenrechner.

Nachfolgende Liste ist eine Sammlung von Aufsätzen und Büchern zu elektrisch-mechanischen Rechenmaschinen, die im Zeitraum von 1900 bis 1970 produziert wurden.

# Využití systémů počítačové algebry (CAS) v matematice

(best my Marchant from Robert Mařík)

Pi= 3.141592653589793238462643383279502884197169399375105820974…

22/7 = 3,14…

22/7-Pi = 0.0012644892673496186802137595776400046…

355/113 = 3.141592…

355/113-Pi = 2,667641e-7

103993/33102 = 3.141592653…

103993/33102 -Pi = -5,77890… e-10

\\\\\\\\\\\\\\\\

http://qin.laya.com/tech_projects_approxpi.html

## Fractional Approximations of Pi

After reading the American Scientist article, On the Teeth of Wheels, which describes the intricate interplay between pure and applied mathematics, and how clock makers independently developed mathematical methods to approximate gear ratios that were not feasibly made (such as representing gear ratios that were two primes with other gear ratios that were close in value), I decided to write a program to find fractional approximations of Pi. A couple of minutes searching google brought me to an existing fractional approximations of pi page, which attempted to find decimal approximations using an iterative approach, which turned out to be very slow. However since the code was open source, I decided to modify for my own uses. The stern-brocot method pretty much changes the O(n2) to about O(1) for the calculation of successive values.

You can get several versions of the source:
The original modification to use the stern-brocot method
A 64 bit version

### Fractional Approximation Table

```pi = 3.14159265358979323846264338327950288419716939937510

Num.                Den. = Result                                   (Accuracy                                 )
-------------         ----------- = --------------------------------         (---------------------------------        )

7/                  2 = 3.50000000000000000000000000000000000000 (-0.35840734641020676153735661672049711581) [ 0]
10/                  3 = 3.33333333333333333333333333333333333333 (-0.19174067974354009487068995005383044914) [ 0]
13/                  4 = 3.25000000000000000000000000000000000000 (-0.10840734641020676153735661672049711581) [ 0]
16/                  5 = 3.20000000000000000000000000000000000000 (-0.05840734641020676153735661672049711581) [ 1]
19/                  6 = 3.16666666666666666666666666666666666666 (-0.02507401307687342820402328338716378247) [ 1]
22/                  7 = 3.14285714285714285714285714285714285714 (-0.00126448926734961868021375957763997295) [ 2]
179/                 57 = 3.14035087719298245614035087719298245614 ( 0.00124177639681078232229250608652042805) [ 2]
201/                 64 = 3.14062500000000000000000000000000000000 ( 0.00096765358979323846264338327950288419) [ 3]
223/                 71 = 3.14084507042253521126760563380281690140 ( 0.00074758316725802719503774947668598279) [ 3]
245/                 78 = 3.14102564102564102564102564102564102564 ( 0.00056701256415221282161774225386185855) [ 3]
267/                 85 = 3.14117647058823529411764705882352941176 ( 0.00041618300155794434499632445597347243) [ 3]
289/                 92 = 3.14130434782608695652173913043478260869 ( 0.00028830576370628194090425284472027550) [ 3]
311/                 99 = 3.14141414141414141414141414141414141414 ( 0.00017851217565182432122924186536147005) [ 3]
333/                106 = 3.14150943396226415094339622641509433962 ( 0.00008321962752908751924715686440854457) [ 4]
355/                113 = 3.14159292035398230088495575221238938053 (-0.00000026676418906242231236893288649634) [ 6]
52163/              16604 = 3.14159238737653577451216574319441098530 ( 0.00000026621325746395047764008509189889) [ 6]
52518/              16717 = 3.14159239097924268708500329006400669976 ( 0.00000026261055055137764009321549618443) [ 6]
52873/              16830 = 3.14159239453357100415923945335710041592 ( 0.00000025905622223430340392992240246827) [ 6]
53228/              16943 = 3.14159239804048869739715516732573924334 ( 0.00000025554930454106548821595376364085) [ 6]
53583/              17056 = 3.14159240150093808630393996247654784240 ( 0.00000025208885515215870342080295504179) [ 6]
53938/              17169 = 3.14159240491583668239268448948686586289 ( 0.00000024867395655606995889379263702130) [ 6]
54293/              17282 = 3.14159240828607800023145469274389538247 ( 0.00000024530371523823118869053560750172) [ 6]
54648/              17395 = 3.14159241161253233687841333716585225639 ( 0.00000024197726090158423004611365062780) [ 6]
55003/              17508 = 3.14159241489604752113319625314142106465 ( 0.00000023869374571732944713013808181954) [ 6]
55358/              17621 = 3.14159241813744963395948016571136711877 ( 0.00000023545234360450316321756813576542) [ 6]
55713/              17734 = 3.14159242133754370136461035299424833652 ( 0.00000023225224953709803303028525454767) [ 6]
56068/              17847 = 3.14159242449711436095702358939877850619 ( 0.00000022909267887750561979388072437800) [ 6]
56423/              17960 = 3.14159242761692650334075723830734966592 ( 0.00000022597286673512188614497215321827) [ 6]
56778/              18073 = 3.14159243069772588944834836496431140375 ( 0.00000022289206734901429501831519148044) [ 6]
57133/              18186 = 3.14159243374023974485868250302430440998 ( 0.00000021984955349360396088025519847421) [ 6]
57488/              18299 = 3.14159243674517733209464998087327176348 ( 0.00000021684461590636799340240623112071) [ 6]
57843/              18412 = 3.14159243971323050184662176841190527916 ( 0.00000021387656273661602161486759760503) [ 6]
58198/              18525 = 3.14159244264507422402159244264507422402 ( 0.00000021094471901444105094063442866017) [ 6]
58553/              18638 = 3.14159244554136709947419250992595772078 ( 0.00000020804842613898845087335354516341) [ 6]
58908/              18751 = 3.14159244840275185323449416031145005599 ( 0.00000020518704138522814922296805282820) [ 6]
59263/              18864 = 3.14159245122985581000848176420695504664 ( 0.00000020235993742845416161907254783755) [ 6]
59618/              18977 = 3.14159245402329135269009854033830426305 ( 0.00000019956650188577254484294119862114) [ 6]
59973/              19090 = 3.14159245678365636458878994237820848611 ( 0.00000019680613687387385344090129439808) [ 6]
60328/              19203 = 3.14159245951153465604332656355777743060 ( 0.00000019407825858241931681972172545359) [ 6]
60683/              19316 = 3.14159246220749637606129633464485400704 ( 0.00000019138229686240134704863464887715) [ 6]
61038/              19429 = 3.14159246487209840959390601677904163878 ( 0.00000018871769482886873736650046124541) [ 6]
61393/              19542 = 3.14159246750588476102753044724183809231 ( 0.00000018608390847743511293603766479188) [ 6]
61748/              19655 = 3.14159247010938692444670567285677944543 ( 0.00000018348040631401593771042272343876) [ 6]
62103/              19768 = 3.14159247268312424119789558883043302306 ( 0.00000018090666899726474779444906986113) [ 6]
62458/              19881 = 3.14159247522760424525929279211307278305 ( 0.00000017836218899320335059116643010114) [ 6]
62813/              19994 = 3.14159247774332299689906972091627488246 ( 0.00000017584647024156357366236322800173) [ 6]
63168/              20107 = 3.14159248023076540508280698264286069528 ( 0.00000017335902783337983640063664218891) [ 6]
63523/              20220 = 3.14159248269040553907022749752720079129 ( 0.00000017089938769939241588575230209290) [ 6]
63878/              20333 = 3.14159248512270692962179707864063345300 ( 0.00000016846708630884084630463886943119) [ 6]
64233/              20446 = 3.14159248752812286021715739019857184779 ( 0.00000016606167037824548599308093103640) [ 6]
64588/              20559 = 3.14159248990709664866968237754754608687 ( 0.00000016368269658979296100573195679732) [ 6]
64943/              20672 = 3.14159249226006191950464396284829721362 ( 0.00000016132973131895799942043120567057) [ 6]
65298/              20785 = 3.14159249458744286745248977628097185470 ( 0.00000015900235037101015360699853102949) [ 6]
65653/              20898 = 3.14159249688965451239353048138577854340 ( 0.00000015670013872606911290189372434079) [ 6]
66008/              21011 = 3.14159249916710294607586502308314692304 ( 0.00000015442269029238677836019635596115) [ 6]
66363/              21124 = 3.14159250142018557091459950766900208293 ( 0.00000015216960766754804387561050080126) [ 6]
66718/              21237 = 3.14159250364929133116730234967274097094 ( 0.00000014994050190729534103360676191325) [ 6]
67073/              21350 = 3.14159250585480093676814988290398126463 ( 0.00000014773499230169449350037552161956) [ 6]
67428/              21463 = 3.14159250803708708009131994595350137445 ( 0.00000014555270615837132343732600150974) [ 6]
67783/              21576 = 3.14159251019651464590285502410085279940 ( 0.00000014339327859255978835917865008479) [ 6]
68138/              21689 = 3.14159251233344091474941214440499792521 ( 0.00000014125635232371323123887450495898) [ 6]
68493/              21802 = 3.14159251444821576002201632877717640583 ( 0.00000013914157747844062705450232647836) [ 6]
68848/              21915 = 3.14159251654118183892311202372804015514 ( 0.00000013704861139953953135955146272905) [ 6]
69203/              22028 = 3.14159251861267477755583802433266751407 ( 0.00000013497711846090680535894683537012) [ 6]
69558/              22141 = 3.14159252066302335034551284946479382141 ( 0.00000013292676988811713053381470906278) [ 6]
69913/              22254 = 3.14159252269254965399478745394086456367 ( 0.00000013089724358446785592933863832052) [ 6]
70268/              22367 = 3.14159252470156927616577994366700943354 ( 0.00000012888822396229686343961249345065) [ 6]
70623/              22480 = 3.14159252669039145907473309608540925266 ( 0.00000012689940177938791028719409363153) [ 6]
70978/              22593 = 3.14159252865931925817731155667684681095 ( 0.00000012493047398028533182660265607324) [ 6]
71333/              22706 = 3.14159253060864969611556416806130538183 ( 0.00000012298114354234707921521819750236) [ 6]
71688/              22819 = 3.14159253253867391209080152504491870809 ( 0.00000012105111932637184185823458417610) [ 6]
72043/              22932 = 3.14159253444967730682016396302110587824 ( 0.00000011914011593164247942025839700595) [ 6]
72398/              23045 = 3.14159253634193968322846604469516164026 ( 0.00000011724785355523417733858434124393) [ 6]
72753/              23158 = 3.14159253821573538302098626824423525347 ( 0.00000011537405785544165711503526763072) [ 6]
73108/              23271 = 3.14159254007133341927721198057668342572 ( 0.00000011351845981918543140270281945847) [ 6]
73463/              23384 = 3.14159254190899760520013684570646595963 ( 0.00000011168079563326250653757303692456) [ 6]
73818/              23497 = 3.14159254372898667915052985487509043707 ( 0.00000010986080655931211352840441244712) [ 6]
74173/              23610 = 3.14159254553155442609063955950868276154 ( 0.00000010805823881237200382377082012265) [ 6]
74528/              23723 = 3.14159254731694979555705433545504362854 ( 0.00000010627284344290558904782445925565) [ 6]
74883/              23836 = 3.14159254908541701627789897633831179728 ( 0.00000010450437622218474440694119108691) [ 6]
75238/              23949 = 3.14159255083719570754520021712806380224 ( 0.00000010275259753091744316615143908195) [ 6]
75593/              24062 = 3.14159255257252098744908985121768764026 ( 0.00000010101727225101355353206181524393) [ 6]
75948/              24175 = 3.14159255429162357807652533609100310237 ( 0.00000009929816966038611804718849978182) [ 7]
76303/              24288 = 3.14159255599472990777338603425559947299 ( 0.00000009759506333068925734902390341120) [ 7]
76658/              24401 = 3.14159255768206221056514077291914265808 ( 0.00000009590773102789750261036036022611) [ 7]
77013/              24514 = 3.14159255935383862282777188545321041037 ( 0.00000009423595461563487149782629247382) [ 7]
77368/              24627 = 3.14159256101027327729727534819507045113 ( 0.00000009257951996116536803508443243306) [ 7]
77723/              24740 = 3.14159256265157639450282942603071948261 ( 0.00000009093821684395981395724878340158) [ 7]
78078/              24853 = 3.14159256427795437170562909910272401722 ( 0.00000008931183886675701428417677886697) [ 7]
78433/              24966 = 3.14159256588960986942241448369782904750 ( 0.00000008770018336904022889958167383669) [ 7]
78788/              25079 = 3.14159256748674189560987280194585111049 ( 0.00000008610305134285277058133365177370) [ 7]
79143/              25192 = 3.14159256906954588758335979676087646872 ( 0.00000008452024735087928358651862641547) [ 7]
79498/              25305 = 3.14159257063821379174076269511954159257 ( 0.00000008295157944672188068815996129162) [ 7]
79853/              25418 = 3.14159257219293414115980801007160280116 ( 0.00000008139685909730283537320790008303) [ 7]
80208/              25531 = 3.14159257373389213113469899338059613802 ( 0.00000007985590110732794438989890674617) [ 7]
80563/              25644 = 3.14159257526126969271564498518171892060 ( 0.00000007832852354574699839809778396359) [ 7]
80918/              25757 = 3.14159257677524556431261404666692549598 ( 0.00000007681454767415002933661257738821) [ 7]
81273/              25870 = 3.14159257827599536142249710088906068805 ( 0.00000007531379787704014628239044219614) [ 7]
81628/              25983 = 3.14159257976369164453681253127044606088 ( 0.00000007382610159392583085200905682331) [ 7]
81983/              26096 = 3.14159258123850398528510116492949110974 ( 0.00000007235128925317754221835001177445) [ 7]
82338/              26209 = 3.14159258270059903086725933839520775306 ( 0.00000007088919420759538404488429513113) [ 7]
82693/              26322 = 3.14159258415014056682622900995365093837 ( 0.00000006943965267163641437332585194582) [ 7]
83048/              26435 = 3.14159258558728957821070550406657839984 ( 0.00000006800250366025193787921292448435) [ 7]
83403/              26548 = 3.14159258701220430917583245442217869519 ( 0.00000006657758892928681092885732418900) [ 7]
83758/              26661 = 3.14159258842504032106822699823712538914 ( 0.00000006516475291739441638504237749505) [ 7]
84113/              26774 = 3.14159258982595054904011354298946739374 ( 0.00000006376384268942252984029003549045) [ 7]
84468/              26887 = 3.14159259121508535723583888124372373265 ( 0.00000006237470788122680450203577915154) [ 7]
84823/              27000 = 3.14159259259259259259259259259259259259 ( 0.00000006099720064587005079068691029160) [ 7]
85178/              27113 = 3.14159259395861763729576218050381735698 ( 0.00000005963117560116688120277568552721) [ 7]
85533/              27226 = 3.14159259531330345992800999045030485565 ( 0.00000005827648977853463339282919802854) [ 7]
85888/              27339 = 3.14159259665679066534986649109330992355 ( 0.00000005693300257311277689218619296064) [ 7]
86243/              27452 = 3.14159259798921754334838991694594200786 ( 0.00000005560057569511425346633356087633) [ 7]
86598/              27565 = 3.14159259931072011608924360602212951206 ( 0.00000005427907312237339977725737337213) [ 7]
86953/              27678 = 3.14159260062143218440638774477924705542 ( 0.00000005296836105405625563850025582877) [ 7]
87308/              27791 = 3.14159260192148537296246986434457198373 ( 0.00000005166830786550017351893493090046) [ 7]
87663/              27904 = 3.14159260321100917431192660550458715596 ( 0.00000005037878406415071677777491572823) [ 7]
88018/              28017 = 3.14159260449013099189777635007316986115 ( 0.00000004909966224656486703320633302304) [ 7]
88373/              28130 = 3.14159260575897618201208674013508709562 ( 0.00000004783081705645055664314441578857) [ 7]
88728/              28243 = 3.14159260701766809474914138016499663633 ( 0.00000004657212514371350200311450624786) [ 7]
89083/              28356 = 3.14159260826632811397940471152489772887 ( 0.00000004532346512448323867175460515532) [ 7]
89438/              28469 = 3.14159260950507569637149179809617478660 ( 0.00000004408471754209115158518332809759) [ 7]
89793/              28582 = 3.14159261073402840948848925897417955356 ( 0.00000004285576482897415412430532333063) [ 7]
90148/              28695 = 3.14159261195330196898414357902073531974 ( 0.00000004163649126947849980425876756445) [ 7]
90503/              28808 = 3.14159261316301027492363232435434601499 ( 0.00000004042678296353901105892515686920) [ 7]
90858/              28921 = 3.14159261436326544725286124269561910030 ( 0.00000003922652779120978214058388378389) [ 7]
91213/              29034 = 3.14159261555417786043948474202658951574 ( 0.00000003803561537802315864125291336845) [ 7]
91568/              29147 = 3.14159261673585617730812776615089031461 ( 0.00000003685393706115451561712861256958) [ 7]
91923/              29260 = 3.14159261790840738209159261790840738209 ( 0.00000003568138585637105076537109550210) [ 7]
92278/              29373 = 3.14159261907193681271916385796479760324 ( 0.00000003451785642574347952531470528095) [ 7]
92633/              29486 = 3.14159262022654819236247710777996337244 ( 0.00000003336324504610016627549953951175) [ 7]
92988/              29599 = 3.14159262137234366025879252677455319436 ( 0.00000003221744957820385085650494968983) [ 7]
93343/              29712 = 3.14159262250942380183091007000538502961 ( 0.00000003108036943663173331327411785458) [ 7]
93698/              29825 = 3.14159262363788767812238055322715842414 ( 0.00000002995190556034026283005234446005) [ 7]
94053/              29938 = 3.14159262475783285456610328011223194602 ( 0.00000002883196038389654010316727093817) [ 7]
94408/              30051 = 3.14159262586935542910385677681275165551 ( 0.00000002772043780935878660646675122868) [ 7]
94763/              30164 = 3.14159262697255005967378331786235247314 ( 0.00000002661724317878886006541715041105) [ 7]
95118/              30277 = 3.14159262806750999108233972982792218515 ( 0.00000002552228324738030365345158069904) [ 7]
95473/              30390 = 3.14159262915432708127673576834485027969 ( 0.00000002443546615718590761493465260450) [ 7]
95828/              30503 = 3.14159263023309182703340655017539258433 ( 0.00000002335670141142923683310411029986) [ 7]
96183/              30616 = 3.14159263130389338907760648027175333159 ( 0.00000002228589984938503690300774955260) [ 7]
96538/              30729 = 3.14159263236681961664876826450584138761 ( 0.00000002122297362181387511877366149658) [ 7]
96893/              30842 = 3.14159263342195707152584138512418131119 ( 0.00000002016783616693680199815532157300) [ 7]
97248/              30955 = 3.14159263446939105152640930382813761912 ( 0.00000001912040218693623407945136526507) [ 7]
97603/              31068 = 3.14159263550920561349298313377108278614 ( 0.00000001808058762496966024950842009805) [ 7]
97958/              31181 = 3.14159263654148359577948109425611750745 ( 0.00000001704830964268316228902338537674) [ 7]
98313/              31294 = 3.14159263756630664025052725762126925289 ( 0.00000001602348659821211612565823363130) [ 7]
98668/              31407 = 3.14159263858375521380583946254019804502 ( 0.00000001500603802465680392073930483917) [ 7]
99023/              31520 = 3.14159263959390862944162436548223350253 ( 0.00000001399588460902101901779726938166) [ 7]
99378/              31633 = 3.14159264059684506686055701324566117661 ( 0.00000001299294817160208637003384170758) [ 7]
99733/              31746 = 3.14159264159264159264159264159264159264 ( 0.00000001199715164582105074168686129155) [ 7]
100088/              31859 = 3.14159264258137417998053925107504943657 ( 0.00000001100841905848210413220445344762) [ 7]
100443/              31972 = 3.14159264356311772801201050919554610283 ( 0.00000001002667551045063287408395678136) [ 7]
100798/              32085 = 3.14159264453794608072307932055477637525 ( 0.00000000905184715773956406272472650894) [ 8]
101153/              32198 = 3.14159264550593204546866264985402820050 ( 0.00000000808386119299398073342547468369) [ 8]
101508/              32311 = 3.14159264646714741109838754603695335953 ( 0.00000000712264582736425583724254952466) [ 8]
101863/              32424 = 3.14159264742166296570441648161855415741 ( 0.00000000616813027275822690166094872678) [ 8]
102218/              32537 = 3.14159264836954851399944678366167747487 ( 0.00000000522024472446319659961782540932) [ 8]
102573/              32650 = 3.14159264931087289433384379785604900459 ( 0.00000000427892034412879958542345387960) [ 8]
102928/              32763 = 3.14159265024570399536062021182431401275 ( 0.00000000334408924310202317145518887144) [ 8]
103283/              32876 = 3.14159265117410877235673439591191142474 ( 0.00000000241568446610590898736759145945) [ 8]
103638/              32989 = 3.14159265209615326320894843735790718118 ( 0.00000000149363997525369494592159570301) [ 8]
103993/              33102 = 3.14159265301190260407226149477372968400 ( 0.00000000057789063439038188850577320019) [ 9]
104348/              33215 = 3.14159265392142104470871594159265392142 (-0.00000000033162780624607255831315103723) [ 9]
208341/              66317 = 3.14159265346743670552045478534915632492 ( 0.00000000012235653294218859793034655927) [ 9]
312689/              99532 = 3.14159265361893662339750030141060161556 (-0.00000000002914338493485691813109873137) [10]
833719/             265381 = 3.14159265358107777120441930658185778183 ( 0.00000000000871546725822407669764510236) [11]
1146408/             364913 = 3.14159265359140397848254241421927966391 (-0.00000000000161074001989903093977677972) [11]
3126535/             995207 = 3.14159265358865040137378454934501063597 ( 0.00000000000114283708885883393449224822) [11]
4272943/            1360120 = 3.14159265358938917154368732170690821398 ( 0.00000000000040406691895606157259467021) [12]
5419351/            1725033 = 3.14159265358981538324194377730744861112 (-0.00000000000002214477930039402794572693) [13]
42208400/           13435351 = 3.14159265358977223594679439338801048070 ( 0.00000000000002100251584898989149240349) [13]
47627751/           15160384 = 3.14159265358977714548655231951908342163 ( 0.00000000000001609297609106376041946256) [13]
53047102/           16885417 = 3.14159265358978105189821489158366654492 ( 0.00000000000001218656442849169583633927) [13]
58466453/           18610450 = 3.14159265358978423412652568852445803298 ( 0.00000000000000900433611769475504485121) [14]
63885804/           20335483 = 3.14159265358978687646612573696921779531 ( 0.00000000000000636199651764631028508888) [14]
69305155/           22060516 = 3.14159265358978910556761228975786423128 ( 0.00000000000000413289503109352163865291) [14]
74724506/           23785549 = 3.14159265358979101134054126730478241221 ( 0.00000000000000222712210211597472047198) [14]
80143857/           25510582 = 3.14159265358979265937562694571217544154 ( 0.00000000000000057908701643756732744265) [15]
165707065/           52746197 = 3.14159265358979340254615892023457160333 (-0.00000000000000016408351553695506871914) [15]
245850922/           78256779 = 3.14159265358979316028327718420406748404 ( 0.00000000000000007817936619907543540015) [16]
411557987/          131002976 = 3.14159265358979325782644815641440084536 (-0.00000000000000001936380477313489796117) [16]
657408909/          209259755 = 3.14159265358979322134827119529027452029 ( 0.00000000000000001711437218798922836390) [16]
1068966896/          340262731 = 3.14159265358979323539256492948091926059 ( 0.00000000000000000307007845379858362360) [17]
2549491779/          811528438 = 3.14159265358979323901400975919959073572 (-0.00000000000000000055136637592008785153) [18]
3618458675/         1151791169 = 3.14159265358979323794416069185889026381 ( 0.00000000000000000051848269142061262038) [18]
6167950454/         1963319607 = 3.14159265358979323838637750639037956696 ( 0.00000000000000000007626587688912331723) [19]
14885392687/         4738167652 = 3.14159265358979323849387505801156062596 (-0.00000000000000000003123167473205774177) [19]
21053343141/         6701487259 = 3.14159265358979323846238174277486901359 ( 0.00000000000000000000026164050463387060) [21]
899125804609/       286200632530 = 3.14159265358979323846290312739302875642 (-0.00000000000000000000025974411352587223) [21]
920179147750/       292902119789 = 3.14159265358979323846289119831454290206 (-0.00000000000000000000024781503504001787) [21]
941232490891/       299603607048 = 3.14159265358979323846287980289163130623 (-0.00000000000000000000023641961212842204) [21]
962285834032/       306305094307 = 3.14159265358979323846286890609758924162 (-0.00000000000000000000022552281808635743) [21]
983339177173/       313006581566 = 3.14159265358979323846285847590540629124 (-0.00000000000000000000021509262590340705) [21]
1004392520314/       319708068825 = 3.14159265358979323846284848297337933163 (-0.00000000000000000000020509969387644744) [21]
1025445863455/       326409556084 = 3.14159265358979323846283890036945343710 (-0.00000000000000000000019551708995055291) [21]
1046499206596/       333111043343 = 3.14159265358979323846282970332883684002 (-0.00000000000000000000018632004933395583) [21]
1067552549737/       339812530602 = 3.14159265358979323846282086904029653302 (-0.00000000000000000000017748576079364883) [21]
1088605892878/       346514017861 = 3.14159265358979323846281237645725178231 (-0.00000000000000000000016899317774889812) [21]
1109659236019/       353215505120 = 3.14159265358979323846280420613037215131 (-0.00000000000000000000016082285086926712) [21]
1130712579160/       359916992379 = 3.14159265358979323846279634005887720665 (-0.00000000000000000000015295677937432246) [21]
1151765922301/       366618479638 = 3.14159265358979323846278876155814494589 (-0.00000000000000000000014537827864206170) [21]
1172819265442/       373319966897 = 3.14159265358979323846278145514157963557 (-0.00000000000000000000013807186207675138) [21]
1193872608583/       380021454156 = 3.14159265358979323846277440641497885695 (-0.00000000000000000000013102313547597276) [21]
1214925951724/       386722941415 = 3.14159265358979323846276760198188357586 (-0.00000000000000000000012421870238069167) [21]
1235979294865/       393424428674 = 3.14159265358979323846276102935860166316 (-0.00000000000000000000011764607909877897) [21]
1257032638006/       400125915933 = 3.14159265358979323846275467689777075912 (-0.00000000000000000000011129361826787493) [21]
1278085981147/       406827403192 = 3.14159265358979323846274853371947582775 (-0.00000000000000000000010515043997294356) [21]
1299139324288/       413528890451 = 3.14159265358979323846274258964906440289 (-0.00000000000000000000009920636956151870) [22]
1320192667429/       420230377710 = 3.14159265358979323846273683516091186105 (-0.00000000000000000000009345188140897686) [22]
1341246010570/       426931864969 = 3.14159265358979323846273126132748294414 (-0.00000000000000000000008787804798005995) [22]
1362299353711/       433633352228 = 3.14159265358979323846272585977311658438 (-0.00000000000000000000008247649361370019) [22]
1383352696852/       440334839487 = 3.14159265358979323846272062263203084137 (-0.00000000000000000000007723935252795718) [22]
1404406039993/       447036326746 = 3.14159265358979323846271554251010510785 (-0.00000000000000000000007215923060222366) [22]
1425459383134/       453737814005 = 3.14159265358979323846271061245004906498 (-0.00000000000000000000006722917054618079) [22]
1446512726275/       460439301264 = 3.14159265358979323846270582589961333896 (-0.00000000000000000000006244262011045477) [22]
1467566069416/       467140788523 = 3.14159265358979323846270117668253641040 (-0.00000000000000000000005779340303352621) [22]
1488619412557/       473842275782 = 3.14159265358979323846269665897195688730 (-0.00000000000000000000005327569245400311) [22]
1509672755698/       480543763041 = 3.14159265358979323846269226726605047424 (-0.00000000000000000000004888398654759005) [22]
1530726098839/       487245250300 = 3.14159265358979323846268799636567745111 (-0.00000000000000000000004461308617456692) [22]
1551779441980/       493946737559 = 3.14159265358979323846268384135384972222 (-0.00000000000000000000004045807434683803) [22]
1572832785121/       500648224818 = 3.14159265358979323846267979757684694309 (-0.00000000000000000000003641429734405890) [22]
1593886128262/       507349712077 = 3.14159265358979323846267586062682924856 (-0.00000000000000000000003247734732636437) [22]
1614939471403/       514051199336 = 3.14159265358979323846267202632581000779 (-0.00000000000000000000002864304630712360) [22]
1635992814544/       520752686595 = 3.14159265358979323846266829071086609244 (-0.00000000000000000000002490743136320825) [22]
1657046157685/       527454173854 = 3.14159265358979323846266465002047559662 (-0.00000000000000000000002126674097271243) [22]
1678099500826/       534155661113 = 3.14159265358979323846266110068188399415 (-0.00000000000000000000001771740238110996) [22]
1699152843967/       540857148372 = 3.14159265358979323846265763929940953314 (-0.00000000000000000000001425601990664895) [22]
1720206187108/       547558635631 = 3.14159265358979323846265426264360740155 (-0.00000000000000000000001087936410451736) [22]
1741259530249/       554260122890 = 3.14159265358979323846265096764121998082 (-0.00000000000000000000000758436171709663) [23]
1762312873390/       560961610149 = 3.14159265358979323846264775136584745085 (-0.00000000000000000000000436808634456666) [23]
1783366216531/       567663097408 = 3.14159265358979323846264461102927921823 (-0.00000000000000000000000122774977633404) [23]
3587785776203/      1142027682075 = 3.14159265358979323846264306850252143875 ( 0.00000000000000000000000031477698144544) [24]
5371151992734/      1709690779483 = 3.14159265358979323846264358066268961876 (-0.00000000000000000000000019738318673457) [24]
8958937768937/      2851718461558 = 3.14159265358979323846264337555790890412 ( 0.00000000000000000000000000772159398007) [26]
77042654144230/     24523438471947 = 3.14159265358979323846264338985711710108 (-0.00000000000000000000000000657761421689) [26]
86001591913167/     27375156933505 = 3.14159265358979323846264338836754332073 (-0.00000000000000000000000000508804043654) [26]
94960529682104/     30226875395063 = 3.14159265358979323846264338715903365924 (-0.00000000000000000000000000387953077505) [26]
103919467451041/     33078593856621 = 3.14159265358979323846264338615889617509 (-0.00000000000000000000000000287939329090) [26]
112878405219978/     35930312318179 = 3.14159265358979323846264338531751659443 (-0.00000000000000000000000000203801371024) [26]
121837342988915/     38782030779737 = 3.14159265358979323846264338459987358119 (-0.00000000000000000000000000132037069700) [26]
130796280757852/     41633749241295 = 3.14159265358979323846264338398054099481 (-0.00000000000000000000000000070103811062) [27]
139755218526789/     44485467702853 = 3.14159265358979323846264338344061241435 (-0.00000000000000000000000000016110953016) [27]
288469374822515/     91822653867264 = 3.14159265358979323846264338319580081089 ( 0.00000000000000000000000000008370207330) [28]
428224593349304/    136308121570117 = 3.14159265358979323846264338327569743446 ( 0.00000000000000000000000000000380544973) [29]
3137327371971917/    998642318693672 = 3.14159265358979323846264338328304372840 (-0.00000000000000000000000000000354084421) [29]
3565551965321221/   1134950440263789 = 3.14159265358979323846264338328216143479 (-0.00000000000000000000000000000265855060) [29]
3993776558670525/   1271258561833906 = 3.14159265358979323846264338328146834546 (-0.00000000000000000000000000000196546127) [29]
4422001152019829/   1407566683404023 = 3.14159265358979323846264338328090949305 (-0.00000000000000000000000000000140660886) [29]
4850225745369133/   1543874804974140 = 3.14159265358979323846264338328044932237 (-0.00000000000000000000000000000094643818) [30]
5278450338718437/   1680182926544257 = 3.14159265358979323846264338328006381618 (-0.00000000000000000000000000000056093199) [30]
5706674932067741/   1816491048114374 = 3.14159265358979323846264338327973616618 (-0.00000000000000000000000000000023328199) [30]
6134899525417045/   1952799169684491 = 3.14159265358979323846264338327945425704 ( 0.00000000000000000000000000000004862715) [31]
17976473982901831/   5722089387483356 = 3.14159265358979323846264338327954374978 (-0.00000000000000000000000000000004086559) [31]
24111373508318876/   7674888557167847 = 3.14159265358979323846264338327952097924 (-0.00000000000000000000000000000001809505) [31]
30246273033735921/   9627687726852338 = 3.14159265358979323846264338327950744587 (-0.00000000000000000000000000000000456168) [32]
36381172559152966/  11580486896536829 = 3.14159265358979323846264338327949847672 ( 0.00000000000000000000000000000000440747) [32]
66627445592888887/  21208174623389167 = 3.14159265358979323846264338327950254837 ( 0.00000000000000000000000000000000033582) [33]
230128609812402582/  73252211597019839 = 3.14159265358979323846264338327950319206 (-0.00000000000000000000000000000000030787) [33]
296756055405291469/  94460386220409006 = 3.14159265358979323846264338327950304754 (-0.00000000000000000000000000000000016335) [33]
363383500998180356/ 115668560843798173 = 3.14159265358979323846264338327950295601 (-0.00000000000000000000000000000000007182) [34]
430010946591069243/ 136876735467187340 = 3.14159265358979323846264338327950289285 (-0.00000000000000000000000000000000000866) [35]
1356660285366096616/ 431838381024951187 = 3.14159265358979323846264338327950287593 ( 0.00000000000000000000000000000000000826) [35]
1786671231957165859/ 568715116492138527 = 3.14159265358979323846264338327950288000 ( 0.00000000000000000000000000000000000419) [35]
2216682178548235102/ 705591851959325867 = 3.14159265358979323846264338327950288250 ( 0.00000000000000000000000000000000000169) [35]
2646693125139304345/ 842468587426513207 = 3.14159265358979323846264338327950288418 ( 0.00000000000000000000000000000000000001) [37]```

https://polska.pl/science/famous-scientists/abraham-stern-17691842-does-anyone-have-calculator/

Portrait of Abraham Stern (with one of his calculating machines) from 1823, artist Jan Antoni Blank
The problem with the world is that the intelligent people are full of doubts, while the stupid ones are full of confidence.
Charles Bukowski

### Abraham Jakub Stern

The Polish Jew Abraham Jakub Stern (see biography of Abraham Stern), a mathematician, inventor, translator, and censor, was born in 1768 in Hrubieszów, in a poor Jewish family. Around 1800, while working at a clockmaker’s shop in his home town, he was lucky to be noticed by Stanisław Wawrzyniec Staszic (1755-1826), a leading figure in the Polish Enlightenment: a Catholic priest, statesman, philosopher, geologist, writer and translator. Staszic, who studied at the Hrubieszów and Lublin secondary school in early 1770s, bought an estate in Hrubieszów in 1800. Staszic obviously noticed the extraordinary talent of the humble clockmaker and encouraged him to devote himself to the study of mathematics, Latin, and German, later sending him to Warsaw to continue his studies.

His first computing machine Stern designed around 1810, and in 1811 he sent a report to Staszic, outlining the device and asking for financial help. Later on he designed two more calculating devices. His inventions became popular, at the time of their development. In 1816 and 1818, Stern demonstrated his machine to the Tzar of Russia Alexander I, who received him cordially and granted him an annual pension of 350 roubles, promising, in case of his death, to pay half of this sum to his widow.

For his inventions, Stern was admitted to the Warsaw Society of the Friends of Science (Warszawskiego Towarzystwa Przyjaciół Nauk, the predecessor of the Polish Academy of Sciences), first as a corresponding member (1817), then as a qualifying member (1821), and finally as a full member (1830). He presented his inventions multiple times at the Society’s meetings.

Stern was a father-in-law and heavily influenced another inventor of calculating machines—Chaim Zelig Slonimski. Stern most probably had strong influence also over another Polish Jew and inventor—Izrael Abraham Staffel.

Stern presented to the Society three calculating machines. First machine for four arithmetic operations was designed around 1810 and was presented on 7 January, 1813, then a different machine for extracting square roots (presented on 13 January, 1817), and finally the combined machine for four operations and square roots (30 April, 1818). A lengthy description of Stern’s machines had been given by himself, and you can see it below. Unfortunately, an original of any of his machines did not survive to the present time, only a later replica of one of the machines, shown below. There is also a low quality reproduction of Stern with one of his calculating machines (see below).

Abraham Izrael Stern with his calculating machine (upper image)
and a later replica of the machine itself (lower photo) (© Science Museum, London)

The only detailed description of the Stern’s machines is his treatise, prepared for the presentation to the Warsaw Scientific Society of the combined machine for four operations and square roots on 30 April 1817, which you can see below (translated from Polish language by Phil Boiarski and Janusz Zalewski):

***
Traetise on an Arithmetic Machine

For the third time, in this earnest place of gatherings of the Society, comprising a selection of learned and enlightened men, I reveal the fruits of my thought—first in the month of January 1813, I presented an invention of a Machine for 4 arithmetic operations—secondly, in January of the current year 1817, an invention of the Machine for extracting roots with fractions—and then finally today, the 30th of April of the current year 1817, an invention combining both these Machines into a single one.

This memorable day is the anniversary of establishing the glorious Warsaw Society of the Friends of Science and honoring it with the title of a Royal Society. I consider myself to be extremely fortunate that on this celebrated day, I can report concerning my inventions, regarding both their historical development and the thought that inspired them as well as regarding properties of said Machines.

Remarks that initially led me to this thought are the following:

A man, although he comes into the world without any means to meet his inevitable needs, nevertheless, being above all creatures with his invaluable gift of mind elevated, with his unlimited ingenuity, uncountable for meeting his stressing needs finds means; because every need he feels inspires him to search and devise means corresponding to this need. That Man, feeling his superiority, thinks that all of nature for his benefit and service has been created and to him subdued; as the Psalmist with astonishment about a man says:

For thou hast made him a little lower than the angels, and hast crowned him with glory and honor. Thou modest him to have dominion over the works of thy hands; thou hast put all things under his feet: All sheep and oxen, yea, and the beasts of the field; The fowl of the air, and the fish of the sea, etc.

This feeling of his undetermined power over all of nature, causes him to regard whatever he finds for himself in nature useful for his needs, even though it should be considered more as a luxury. Experience teaches us that many things that initially were luxurious only because of having been used by a small number of people, with time, however, have become so common that they have shifted from the level intrinsic to luxury to the level of essential need.

From all this ensues, that when in the mankind a number of needs increases, then by this very thing, the ingenuity in methods and means to meet these needs has to multiply. Since such means are commonly based on physical acts, that is, works of the body, which often become onerous, or even beyond human power, so in such case the mind, as a primary Leader of the Man, makes every effort to invent intermediary means to replace the work of the body, or at least to ease it. Following this purpose, numerous mechanical tools have been invented to protect human physical power and support it.

From the depths of this convincing truth, another one equally undeniable have I drawn, that while no one spared efforts to bring assistance and relief to the physical condition, it becomes at least equally necessary to launch a search for mechanical means, which would offer help in human mental activities and relieve the intensity of thought; since the intensity of thought, as it is known, not only often impairs the subtlety of organs, deadens the wit, degrades memory, but also, even causes weakening of the body.

I considered arithmetic or calculation science such a mental activity, one that was necessary, but through an intensity of thought, one that could be harmful. In it, the first 4 types of operations, that is, Addition, Subtraction, Multiplication and Division are the main principles of all calculations, insofar that all other calculi are only the result of combinations of the said 4 kinds. And even though all 4 arithmetic operations, in general, require an uninterrupted presence of mind, that if for a moment gets distracted, a calculation cannot be accurate; since Multiplication and Division, for the reason of higher and more continuous intensity of thought, turn out to be the most difficult ones and therefore so often are subjected to errors.

Abraham Stern demonstrating one of his calculating machines in Warsaw (at public sittings of the Friends of Sciences Society, Stern’s Jewish clothes among black tailcoats worn by his colleagues always puzzled people who were not aware who he was)

At this point, I think it would not be unusual, regarding calculation errors, to make the following remark:

In regular calculus, we do not have and even cannot have a test convincing us whether any error was made; this is because a test performed by a reverse calculation, for example, Multiplication by Division, or Division by Multiplication, does not yet constitute a sufficient proof, for it means to test a mental activity by another mental activity. Since the repeated mental action, intending to serve as a test, is subjected to an equal error as in the primary calculation, this error in a test could have obstructed an error made in the calculation itself, and made it invisible.

All these remarks became for me the reason to invent an arithmetic Machine based on mechanical and arithmetic principles, with the assistance of which even people knowing only counting and numbers, all 4 kinds of calculations, and therefore all the other calculi, without slightest application of thought to it, easily could accomplish. And because I thought it to be just, in such an important subject, not to rely solely on the principles of the theory of the mechanism, on which my invention has been based, insofar the slightest error in these principles could have disproved the entire construction of the invention, therefore for better conviction, I elaborated for testing a model of such an arithmetic Machine that worked. And even though the Machine was not of a durable construction, and the required accuracy in the first, rough design, could not have been achieved, however, it exactly performed all the arithmetic calculations, so far that it proved the reality of this important invention.

In the month of December 1812, I submitted this invention for the consideration of the respectable Royal Warsaw Society of the Friends of Science. This Eminent Society, having assessed the invention as corresponding fully to its purpose, deigned to deliver to the public a message about it, in its gathering on January 1813.

I have stated then, that I have planned to make another Machine, made of metal, in a way strong and durable. And although such an endeavor in particular at the initial stage, required time and significant funds for covering expenses, which by then a critical war situation of the Polish state, of which I am a compatriot, made it even more difficult for me, however, not saving efforts on my part, this statement of mine I have put into effect, so far that working continuously on this invention, I have finished a Machine for 4 fundamental arithmetic operations, completely of metal made with the finest work, and performing 13 digit operations.

In conjunction with work on this arithmetic Machine, I also worked on another, by far more difficult, invention of a Machine for extracting roots with fractions. The difference existing between only arithmetic operations and extracting roots already shows the level of difficulty; because in the former, there are always at least two known numbers given and the third unknown is searched for, but in extracting roots, there is only one known number given, and the other one unknown, that multiplied by itself equals the given number. Admittedly I learned that I ventured into such an abyss, from which a recovery is subject to numerous difficulties, both regarding the implementation of a thought as well as the huge costs, which a carefully elaborated plan definitely required. But no difficulty could oppose my keen willingness to finish the invention, which from various points of view seems to be important, both for the intention proper, the relief in the intensity of thought and counteracting unintentional errors, and to create a completely new mechanical means, included in this invention, which could apply great benefits to mechanical tools in other objects.

Thanks to the Almighty, I have passed this difficult and dangerous path, too, and the Machine for extracting roots with fractions I have led to the intended goal. This invention just like the first one, I have submitted for consideration of the glorious Royal Society of the Friends of Science, about which the public has been informed at the past January gathering of this Society.

This way, then, these two inventions, two separate Machines have been formed, one for the 4 arithmetic operations, and another for extracting roots.

I began thinking further on the ways, which these two inventions could combine into a single Machine. It seemed to me, initially, to be impossible, indeed. But finally, at this point mechanical ingenuity showed me the means to put my intent into effect. The importance of this thought so overwhelmed me, that to all unpleasant things stemming from shortages I have been insensitive, doubling my efforts, so I could make this combination sooner.

Thanks to the Highest Being, in this subject I did not fail either. I can say this boldly, since I am referring to the convincing proof, that is, before our eyes: a Machine, which accurately performs all 4 arithmetic operations, as well as extracting roots.

If I wanted to venture into the details and explanations of all principles of the internal Mechanism of this Machine, the purpose would be missed. Because the Mechanism, comprising several wheels of various kind, rotations of a new type, springs and levers, by various means connected with each other, requires an extensive description and many figures, which will be the subject of a work planned for a later date, with figures clearly presenting the matter, but in this treatise clarifications would be an excessive boring of the respected public. Therefore I am moving now only to a brief sketch of the Machine and the explanation of the way of using it, in various arithmetic operations and extracting roots, as well as doing a foolproof test.

This Machine has a shape of a parallelepiped, longish and rectangular, in its length by five rows of wheels divided. The first, uppermost row, just like the second one underneath, is composed of 13 wheels based on axles. The wheels of the first uppermost row have discs, on which there are engraved ordinary digits of numbers of which only one number over the aperture is visible. Because the numbers of these wheels correspond to positions of units, tens, hundreds, etc., thus, this row entails trillions. Wheels of the second row, in turn, do not have discs, and serve only as the Mechanism offering movement to the uppermost numerical wheels. Both these rows do not change (their place in the Machine. Behind these rows underneath, there are two rows of wheels, which similarly have numerical discs visible through the apertures, and are placed in a separate base in the shape of a carriage. This carriage with its two rows of wheels is so imbedded in the Machine, that it can easily move on smaller wheels or rollers. The first row in this carriage has 7 numerical wheels on the axles of which there are as many folding cranks. Besides these cranks, on the diameter of a folding crank, there is another main crank which can be inserted and removed. The second row underneath has 8 wheels. Below this carriage, there is a lowermost row, composed of 7 wheels, equipped with numerical discs visible through apertures. This row has a stable and invariable place in the Machine. In addition to these rows of wheels, in top of the Machine there are two more rows of wheels, on which Roman numerals are engraved, visible through apertures. One of these rows has its place above the ordinary numerical apertures of the uppermost row, and the other above the ordinary numerical apertures of the lowermost row.

The way of using the Machine in operations is the following:
When any of the 4 arithmetic operations is to be performed, then one has to move to the left the handle positioned on the right on the carriage at the second row. As a result of this move, on a carriage on the left hand side, the word Species shows through an aperture, all the numerical apertures of the second row are covered, and thus the Machine is ready for 4 arithmetic operations. If the species of an operation is to be addition or multiplication, then with two handles at the ends of the Machine devised at the right and left hand sides, one moves up, while at the same time the words: Addition – Multiplication show up on the Machine through apertures, and by this the Machine is ready for these operations. If the species of the calculation were subtraction or division, this is done by moving from top down, the same way, words Addition and Multiplication disappear, and in their place the words Subtraction – Division are seen and the Machine by this is ready for to the said operations.

In calculations of addition or subtraction, one puts the first number known participating in the problem, in the uppermost row, and the other one in the first crank row on a carriage. The operation is performed by the main crank in the middle of the carriage base, which gives movement to the entire Machine. If only a single circular rotation is performed, then the brake, located on the left hand side of the carriage, stops further movement of the Machine, and at the same time the unknown number searched for, appears in the uppermost row through apertures as a result of the operation.

In addition, there is one more convenience in the Machine, that is, because in this type of operation it happens that more than two rows of numbers in the calculation have to be combined, for example, in Registers and Tables, one sets on the Machine the first two given rows, as mentioned above, and by making a single circular rotation of a crank the Machine brakes, one touches the brake with a finger, and the Machine becomes available for rotation. Furthermore, one sets, in the third crank row on a carriage, the third given row, and rotates the crank once again, and so on, acting so until all the given rows are exhausted; at that time, in the uppermost row there will be a general Sum of all the given numbers. However, to prevent an error from squeezing in, when all these different numbers are being added, which can especially happen when the operator interrupts the work, the Machine shows, through the aperture, the number corresponding to the value of how many given rows have been taken to the operation thus far.

Multiplication is performed in the following way. One of the factors is set on the crank row in a carriage, and the other on the lowermost row, while on the uppermost row, which is designated for the product searched for, zeroes are placed. After that, one moves the carriage from the right to the left side, to the very end of the Machine, by the handle placed on the left hand side of the carriage. After releasing the handle, the carriage returns by itself, and stops in a position resulting from the nature of the problem. In this position one begins rotation of the main crank. During the rotation, the carriage moves by itself from one number to the other towards the right hand side, back through the end of the Machine; over there, the operation lasts until the ring of a bell warns about the operation’s completion, while at the same time the product searched for appears already on the uppermost row. In this species of operation, the Machine has a particular superiority over calculations in an ordinary manner, that from several given multiplications one can obtain a general product without performing an addition operation, that is, without combining individually calculated products together. This is because in an ordinary calculation, in such case, one has to first calculate a separate product from every two factors, then collect all individual products together and, by addition, derive the general product. On the Machine, however, one sets the first task and operates as long as the ring of a bell indicates to stop; not paying attention to the value of a product, one sets the second task, third, and so on, and when after the last operation the ring of a bell indicates to stop the rotations, at that time the general product of all the tasks appears on the uppermost row.

In division, one proceeds in the following way. The dividend is set on the uppermost row, and the divisor on the crank row in the carriage, while on the lowermost row, designated for the quotient, zeroes are placed. The carriage moves towards the left hand side, until the divisor stands straight under the dividend number being greater or at least equal to the divisor. Then a main crank rotation begins and lasts as long as the dividend number becomes smaller than the divisor, at which point one presses with finger a flap situated on the right hand side of the carriage, after which the carriage moves by itself towards the right hand side and stops at the appropriate place, where further operation continues in a similar manner till the end of the job. And when the divisor located on the carriage, standing in its first place, that is, at the end of the Machine on the right hand side, carries the dividend, then the operation is to stop and the quotient appears on the lowermost row. In case there is a fraction, then the numerator appears on the uppermost row and the denominator on a crank row in the carriage. If on the uppermost row there are only zeroes, this means that quotient is a whole number, without a fraction.

I am now going to describe the way of extracting roots.

If one wants to extract a square root from a given number, first, one has to move to the right the handle at the second row on the right hand side of the carriage, so that at the left hand side of the carriage, the word Species disappears and is replaced by the word Radices in the aperture. Then, numerical apertures of the second row of the carriage open, and the Machine is ready for extracting roots. Next, one has to move the handles at the ends of the Machine from top down, where between the inscriptions Subtraction – Division, one can also see on the Machine the word Extraction. The main crank in the middle of the carriage has to be removed, and the smaller folding cranks replace it in the operation. On the uppermost row, one sets up the known number of a given square, and on the first and second rows of the carriage all zeroes, except at the position of units in the second row, where one places the number 1. At the apertures for ordinary numbers of the uppermost row there are various signs dividing this row into sections, in such an order that for every two numerical wheels there is a sign, that is, at units, hundreds, tens of thousands, millions, and so on. On the said cranks there are identical signs, so that each crank corresponds to two wheels of the uppermost row, for example, the first crank from the right corresponds to units and tens, the second one – hundreds and thousands, and so on. The last sign, at the given number of the square, points to the crank from which the operation has to start, for example, if the given square ends on the wheels of the first sign, then the operation has to be undertaken with the first crank on the right hand side. If, however, a given square ended on the wheels of the second sign, the operation then begins with the second crank, having the same sign. Indicated this way the folding crank unfolds, the carriage moves to the left until the unfolding crank stops in front of the last sign of a given square. The rotation is conducted with this unfolding crank and lasts as long as the number on the uppermost row, in front of the rotating crank, becomes smaller than or, at least, equal to the number positioned in front of the same crank on the second row of the carriage. Next, by folding this crank, the crank to the right of it unfolds, and by pressing with finger a flap on the right hand side of the carriage, the carriage moves by itself to the right hand side, until it is stopped by a folded crank, just in front of the previous section. One performs the same operations as above, for each section up to the last one. After completing the operation, if a given number was a full square, then it is replaced by zeroes and the whole root on the crank row in the carriage appears. Otherwise, except of the whole number root, an additional fraction results, namely, the numerator on the uppermost row and the denominator on the second row in the carriage.

To approximate the root in decimal fractions, one has to set on the uppermost row as many sections to zeroes as decimal digits in a fraction we want to have, for example, if the root is to be extracted from the number 7, and a fraction approximated with two decimal digits, one sets two sections, or four wheels, to zeroes, and the given number 7 is set in the third section, that is, on the 5th wheel of the uppermost row. To distinguish between the number actually given and the zeroes attached to it, a moving hand always slides out under this sign where the actual number has been set, which warns the operator how many digits for a decimal fraction he has to cut from the right hand side on the crank row in the carriage. This way, then, when a given number is under the third sign, one has to unfold the third crank and perform the operations as above. The root will, then, result on the 3 crank wheels in the carriage, as number 264. Cutting off, following the hand’s warning, two digits for a decimal fraction, will mean 2 wholes and 64 hundredths. In addition to that, in the uppermost row there is number 304, as a numerator, and in the second row of the carriage, 529, as a denominator of the ordinary fraction of the tenth units of the first order.

At the beginning of this treatise I explained that in our ordinary calculus, there is no convincing test that in our mental operation there was not any error, and that a way of testing by reverse calculation does not constitute a sufficient proof. The same remark applies to the operation of the Machine. In case the Machine, due to damage, produced a false result, then the test by a reverse operation would not be proving, because the same damage that caused a false result in Multiplication, for example, would have affected a false result in Division, which would be clear even from the composition of the Machine. But to remedy this, I devised for the Machine a completely different kind of test, which is an absolute proof.

Two rows of wheels with Roman numerals, mentioned above, located on top of the Machine, are designed for this purpose.

To obtain such a reliable test, one proceeds as follows.

Regarding Multiplication: Since from all the factors, the numbers of the factor on the uppermost row disappear during the work, being replaced by zeroes, so to make it visible after the work, what factor was a part of the problem, one sets in advance, on a Roman numbered row located above the apertures of the lowermost row, the signs corresponding to the digits of the factor which is to disappear. And because after completing the operation, the product results on the uppermost row and on the lowermost row there are zeroes, so one shifts as many zeroes to the number 9 as the number of digits of the remaining factor in the Roman numbered row, except of the first digit, being meaningful, at the right hand side of the factor, where the appearing zero remains. After this, the operation of testing begins. The carriage moves to the left and will stop by itself at the last number 9, but the rotation lasts as long as the number appears that is equal to the Roman numeral right above it, that is, the same which previously disappeared. At that time, one presses the flap on the right hand side of the carriage, the carriage moves to the right and the rotations proceed further, as before, until a given factor fully appears on its first place, that is, on the lowermost row.

If after this work it turns out that there are as many digits in the factor on the lowermost row, as the number of zeroes on the uppermost row, at the right hand side, and the numbers following them are equal to the numbers on the crank row of the carriage, then it is an absolute proof that the first product was true, otherwise it had been false.

In Division, the test is conducted as follows. When the dividend is set on the uppermost row, at the same time on the Roman numerals row above it, the same signs are set, so that the dividend, which disappears during the work, that way be preserved; and when after completion of the division, the quotient appears on the lowermost row, it is then moved to the Roman numerals row directly above it. Then one moves the carriage towards the left hand side, until the first number of units on the carriage appears in front of the last number of the quotient. The rotation is conducted in this place, until the carriage moves by itself towards the right hand side, and this continues number by number, until the carriage moves to the first number of units, where one has to rotate as long as a zero appears. After completing this operation, one moves the carriage to the left as long as its first number of units passes all the digits of the preserved quotient. When the carriage is moved thus far, one has to watch if the number on the uppermost row, which has now formed, combined with the number on the crank row of the carriage, will match the dividend preserved on the Roman numerals row, which is a positive proof that the first result was true, otherwise it had been false.

The test of extracting roots is conducted the same way as in the division, except that right before making the test, one has to adjust the Machine from the state of extracting roots to the state of arithmetic operations, and then set on the lowermost row the number equal to the root resulted in the crank row of the carriage. The remaining steps and the proving test are the same as in the division testing.

Remark: I am ending this treatise with a remark that since the Mechanics is an Opener to [meeting] our needs, insofar that not only our physical power but even that of mental power can replace, thus we should put our strongest effort to propagate ingenuity in such a broad and useful field, not venturing, however, into a search for perpetuum mobile, that is, an eternal motion, since this is an incurable disease of Mechanics, just as a philosopher’s stone and an inextinguishable fire in Chemistry, and a squaring of a circle in Geometry—all thoughts in this area have an attribute of an ineffective stubbornness. Let us better strive to make progress in mechanical matters showing promise, since such conduct paves the way to the well-being and glory of the Nation.

https://www.computerhistory.org/atchm/who-invented-the-microprocessor/

# Who Invented the Microprocessor?

Sep 20, 2018

Intel Pentium microprocessor die and wafer

The microprocessor is hailed as one of the most significant engineering milestones of all time. The lack of a generally agreed definition of the term has supported many claims to be the inventor of the microprocessor. The original use of the word “microprocessor” described a computer that employed a microprogrammed architecture—a technique first described by Maurice Wilkes in 1951. Viatron Computer Systems used the term microprocessor to describe its compact System 21 machines for small business use in 1968. Its modern usage is an abbreviation of micro-processing unit (MPU), the silicon device in a computer that performs all the essential logical operations of a computing system. Popular media stories call it a “computer-on-a-chip.” This article describes a chronology of early approaches to integrating the primary building blocks of a computer on to fewer and fewer microelectronic chips, culminating in the concept of the microprocessor.

https://www.dos4ever.com/flyback/flyback.html

# Flyback Converters for Dummies

## Ronald Dekker

### Special thanks to Frans Schoofs, who really understands how flyback converters work

 If you are interested in Flyback Converters you might want to keep track of my present project: the µTracer: a miniature radio-tube curve-tracer

## introduction

In the NIXIE clocks that I have built, I did not want to have the big and ugly mains transformer in the actual clock itself. Instead I use an AC adapter that fits into the mains wall plug. This means that I have to use some sort of an up-converter to generate the 180V anode supply for the NIXIEs.

This page describes a simple boost converter and a more efficient flyback converter both of which can be used as a high voltage power supply for a 6 NIXIE tube display. Frans Schoofs beautifully explained to me the working of the flyback converter and much of what he explained to me you find reflected on this page. I additionally explain the essentials of inductors and transformers that you need to know. This is just a practical guide to get you going, it is not a scientific treatise on the topic.

## What you need to know about inductors

Consider the simple circuit consisting of a battery connected to an inductor with inductance L and resistance R (Fig. 1). When the battery is connected to the inductor, the current does not immediately change from zero to its maximum value V/R. The law of electromagnetic induction, Faraday’s law prevents this. What happens instead is the following. As the current increases with time, the magnetic flux through this loop proportional to this current increases. The increasing flux induces an e.m.f. in the circuit that opposes the change in magnetic flux. By Lenz’s law, the induced electric field in the loop must therefore be opposite to the direction of the current. As the magnitude of the current increases, the rate of the increase lessens and hence the induced e.m.f. decreases. This opposing e.m.f. results in a linear increase in current at a rate I=(V/L)*t. The increase in current will finally stop when it becomes limited through the series resistance of the inductor. At that moment the amount of magnetic energy stored in the inductor amounts to E=0.5*L*I*I.

Figure 1

http://www.crisvandevel.de/

## Cris’ site on antique mechanical four-function calculators

http://public.beuth-hochschule.de/~hamann/

 Prof. Dr.-Ing. Christian-M. Hamann ( verantwortlich für den Inhalt dieser HomePage ) Spezialgebiete: ( ehem. Leiter des Labors für Künstliche Intelligenz ) LISP & PROLOG Anwendung Expertensysteme Evolutionsstrategien & Genetische Algorithmen Simulation Neuronaler Netze Positionale Logische Algebra Fuzzy-Logik OVER 777 HISTORICAL/TECHNICAL OBJECTS TO EXPLORE … THE ON-LINE MUSEUM RechenMaschinen, RechenStäbe, … , SchreibMaschinen, Telefone, Uhren

https://www.computerhistory.org/babbage/howitworks/

# How it Works

© Computer History Museum | Credits

http://w-hasselo.nl/mechn/

# Wim Hasselo

## Early Canon Desktop Calculators

### Contents

Canon “Canola” Model 167P, 1971

http://www.azillionmonkeys.com/qed/sqroot.html

# √Square Roots

## 1. Compute a square root now!

Enter a non-negative number in the Input field below:

http://www.vcalc.net/hp-code.htm

# Microcode: Electronic Building Blocks For Calculators

Last Update: January 22, 2003 — THE HP REFERENCE

Hewlett Packard Personal Calculator Digest
Vol. 3, 1977
pp 4-6

Just as DNA can be called the building blocks of the human organism. Microcode can be called the building blocks of the electronic calculator.

But, while the way the human organism works is determined by heredity, the way an electronic calculator works is determined by the highly personal–and even idiosyncratic–creative impulses of a programming specialist.

The principles of programming can be learned, of course. But anyone who has programmed his own calculator quickly discovers that techniques may vary widely from person to person.

Consider the challenge faced by the professional programmer When you press the key labeled SIN, for example, you expect the calculator to display the sine of the value you have keyed into it–and presto, it does. But in that less-than-a-second interval between keystroke and display, the calculator has executed an internal program of about 3500 steps. And it does this according to the highly individualistic microcode that the programmer has created.

The development of microcode in Hewlett-Packard personal calculators began with the development developments of the microprocessor in the HP-35–and not coincidentally, since both were developed by the same Hewlett-Packard engineer.

It is the microprocessor that determines the “language” of the internal microcode. If you are familiar with computer languages such as BASIC, FORTRAN, and COBOL, you know that these languages structure the way you write your program on the computer. You can only do what the language lets you do.

The microprocessor is similar to the computer. It provides a language that a clever engineer can then build into a function on the keyboard.

The original HP-35 microprocessor has remained essentially unchanged through the years and is the heart of the new HP-19C and HP-29C. Compared with computer processors, the binary-coded decimal microprocessor is very simple it does not handle byte data well, but is, in fact, specially designed for 10-digit floating point numbers (See figure 1.). The resulting microcode language most closely resembles machine language, which is programming at as most basic level.

Most microprocessors use 8-bit instructions and two or three instructions are usually combined to perform one operation. The beauty of HP’s calculator microcode is that 10-bit instructions are used and each usually performs a complete operation by itself.

The language’s strongest point is its robust arithmetic section of 37 instructions combined with eight field-select options. The field-select options allow the program to apply the instruction to any word-select portion of the register (See figure 2.).

The language is also designed to use very little storage; only seven registers were used in the HP-35 of which five were user registers. This is done to reduce costs and to save valuable space. For the design engineer it means that he must accomplish all of his miracles within the program itself.

Based on warranty card analysis and other market research, parameters regarding the desired function set and price are given to the design engineer. It is his job then to determine the specific functions for the calculator and to attempt to fit them in the allotted memory. Price is an important factor to the engineer because it directly influences the amount of memory he has to work with.

Only after several months of hard work writing and compacting microcode will he know if the function set will fit. If it is not possible, the product may be redefined at a higher price with greater performance to increase the available memory. More likely however, the engineer will be forced to pare functions until his program fits.

To give you an idea of how much memory is required, the HP-35 used three pages of 256 instructions each. Each page required a separate ROM read-only memory.

• HP-35—-768 instructions–3/4 quad (3 pages of 256 instructions each)

The HP-45 originally took six pages of instructions. But about that time the quad ROM was developed, which, as its name implies, was the equivalent of four conventional ROM’S. So for the HP-45, two quad ROM’s were used. It was in the leftover two pages that an enterprising designer placed the celebrated HP-45 clock. Later calculators, listed below, continued to use quad ROM’s.

Note: 1 quad = 1024 instructions or 4 pages of 256 instructions each. -Rick-

Writing the microcode is where the designer’s personality is stamped indelibly on the Calculator. While it is true that the fundamental algorithms for commuting the complex mathematical functions found in HP personal calculators have remained essentially the same since the HP-35, the individual code is substantially different.

```+---------------------------------------------------------------------+
| NUMBER   REGISTER REPRESENTATION                                    |
|                                                                     |
|          +---+---+---+---+---+---+---+---+---+---+---+---+---+---+  |
|   23.4   | 0 | 2 | 3 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |  |
|          +---+---+---+---+---+---+---+---+---+---+---+---+---+---+  |
|                                                                     |
|            a                                                        |
|          +---+---+---+---+---+---+---+---+---+---+---+---+---+---+  |
|  -123.   | 9 | 1 | 2 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 |  |
|          +---+---+---+---+---+---+---+---+---+---+---+---+---+---+  |
|                                                                     |
|                                                                   b |
|          +---+---+---+---+---+---+---+---+---+---+---+---+---+---+  |
|  .002    | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | 9 | 7 |  |
|          +---+---+---+---+---+---+---+---+---+---+---+---+---+---+  |
|                                                                     |
|          a. A "9" in the sign position indicates a negative number. |
|          b. Exponents are kept in 10's complement form.             |
|                                                                     |
+---------------------------------------------------------------------+
|  Figure 1. All numbers in registers are in scientific notation with |
|  the mantissa portion of the number left justified in the mantissa  |
|  portion of the register.                                           |
+---------------------------------------------------------------------+
```
```+---------------------------------------------------------------------+
|          mantissa sign                               exponent sign  |
| pointer    |                                           |            |
| positions+---+---+---+---+---+---+---+---+---+---+---+---+---+---+  |
|    ----> |13 |12 |11 |10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |  |
|          +---+---+---+---+---+---+---+---+---+---+---+---+---+---+  |
|          |   |                                       |           |  |
|          |   |                                       |           |  |
|          |   +------------- mantissa ----------------+- exponent +  |
|          |                                           |           |  |
|          +----------- mantissa and sign -------------+           |  |
|          |                                                       |  |
|          +----------------------  word --------------------------+  |
|                                                                     |
+---------------------------------------------------------------------+

+---------------------------------------------------------------------+
|Instructions                                                         |
+--------------+------------------------------------------------------+
|  A = 0       |                                                      |
|  B = 0       | Clears word-select portion.                          |
|  C = 0       |                                                      |
+--------------+------------------------------------------------------+
|  B = A       | Copies word-select portion                           |
|  C = B       |   from specified register                            |
|  A = C       |   to specified register.                             |
+--------------+------------------------------------------------------+
|  AB EX       | Exchanges word-select portion                        |
|  AC EX       |   between specified registers.                       |
|  CB EX       |                                                      |
+--------------+------------------------------------------------------+
|  A = A + B   |                                                      |
|  A = A + C   |                                                      |
|  C = A + C   |                                                      |
|  C = C + C   |                                                      |
|  A = A - B   |                                                      |
|  C = A - C   |                                                      |
|  A = A - C   | Performs stated arithmetic                           |
|  A = A + 1   |   on word-select portion.                            |
|  C = C + 1   |                                                      |
|  A = A - 1   |                                                      |
|  C = C - 1   |                                                      |
|  C = -C      |                                                      |
|  C = -C - 1  |                                                      |
+--------------+------------------------------------------------------+
|  A SR        |                                                      |
|  B SR        | Shifts word-select portion right.                    |
|  C SR        |                                                      |
+--------------+------------------------------------------------------+
|              |                                                      |
|  A SL        | Shifts word-select portion left.                     |
|              |                                                      |
+--------------+------------------------------------------------------+
|              | Circular shifts whole A                              |
|  A SLC       |   register but does not have                         |
|              |   word-select option.                                |
+--------------+------------------------------------------------------+
|  ? B = 0     |                                                      |
|  ? C = 0     |                                                      |
|  ? A => C    | Tests word-select portion of                         |
|  ? A => B    |   given register.                                    |
|  ? A = 0     |                                                      |
|  ? C = 0     |                                                      |
+--------------+------------------------------------------------------+
| Field-Select Options                                                |
|                                                                     |
|  1. Mantissa (M)                                                    |
|  2. Mantissa and Sign (MS)                                          |
|  3. Exponent (X)                                                    |
|  4. Exponent Sign (XS)                                              |
|  5. Sign of Mantissa (S)                                            |
|  6. Pointer (P)                                                     |
|  7. Word (W)                                                        |
|  8. Word thru Pointer (WP)                                          |
|                                                                     |
+---------------------------------------------------------------------+
|  Figure 2. Registers are 14 digits long with each digit being four  |
|  bits. An additional four bit register is used as a pointer. The    |
|  programmer can set the pointer to any digit position, change that  |
|  digit or all digits up to that position.                           |
+---------------------------------------------------------------------+
```

Some of the major routines such as those for sine, cosine, and tangent are the same from calculator to calculator. But in most cases if the code cannot be borrowed exactly as it exists in another calculator, it must be rewritten.

Some designer begin by strictly flowcharting the entire program Others tackle the code directly and leave all but basic flowcharting till the end for documentation purposes only. The code is written originally on paper just as you would write a program on an HP programming pad. It is then either punched on cards or typed into a handy CRT.

The major task in writing the microcode is not only to have the functions produce the correct answers when a key is pressed, but to fit the code into a given amount of memory and make it execute as fast as possible. Compacting the code, that is, rewriting sections of the program to make them more space-efficient, is easy enough, but sometimes results in a loss of speed. These are tradeoffs to which the designer must be constantly attentive.

The processor executes approximately three instructions per millisecond, with each instruction taking the same amount of time. The designer takes into consideration the type of function and the necessary speed when writing the code. Straight-line code with no branches of any I kind executes the fastest. For the label search function on the HP-67 and the HP-97 the designer duplicated a great deal of code to; make it faster. The print instructions for the new HP-19C, on the other hand, did not need to be as fast to keep up with the printer, mechanism. So the designer compacted these codes, making them very complex.

```+---------------------------------------------------------------------+
|     +---------------+    +---------------+    +---------------+     |
|     |   A. Answer   |    |B. Multiplicand|    | C. Multiplier |     |
|     +---------------+    +---------------+    +---------------+     |
|                                                                     |
+--------+-----------+--------+---------------------------------------+
| LABEL  | CODE      |        | Explanation                           |
+--------+-----------+--------+---------------------------------------+
|        | A = 0     | W      | Clearing space for answer.            |
|        | P =       | 3      | Starting at least significant digit.  |
|        | GoTo      | Mpy90  | Starting in middle of loop for speed. |
| Mpy90  | A = A + B | W      | Add Multiplicand to partial product   |
|        |           |        |   the number of times specified by    |
|        |           |        |   digit being worked on.              |
+--------+-----------+--------+---------------------------------------+
| Mpy100 | C = C - 1 | P      |                                       |
|        | GoNC      | Mpy90  | NC stands for no carry, i.e. a GoTo   |
|        |           |        |   is executed unless a digit is       |
|        |           |        |   carried (or borrowed).              |
|        | ? P =     | 12     | Have we reached the end of the world? |
|        | GoYes     | END    |                                       |
|        |           |        |                                       |
+--------+-----------+--------+---------------------------------------+
|        | P = P + 1 |        | Move on the next digit.               |
|        | A SP      | W      | This does a divide by 10 to line up   |
|        |           |        |   for the next decade.                |
|        | GoTo      | Mpy100 | Go reenter loop.                      |
|        |           |        |                                       |
+--------+-----------+--------+---------------------------------------+
|  Figure 3. Multiplying two numbers uses the basic routine shown     |
|  above and involves three registers The starting point of this      |
|  code assumes the sign and exponent of the answer have already      |
|  been calculated. END is a common function return which would       |
|  perform operations such as display formatting, printing, etc.      |
+---------------------------------------------------------------------+
```

In general, programmable calculators go through more gyrations for each function than do preprogrammed calculators because they must generate an intermediate keycode. Where simple functions such as Change Sign, x exchange y, and ENTER require only 100 steps of code on a preprogrammed calculator, the same functions on a programmable calculator might take 150 steps. And a complex function such as rectangular-to-polar conversion might take over 4000 steps, depending on the argument keyed in.

The engineer uses a computer simulator to write and debug his code. Special programs written for this simulator furnish him with status bit information, register contents, and intermediate answers as an aid in this process.

Once the microcode is completed on the computer, it is transferred to an E-ROM (erasable read only-memory) simulator for further debugging (See photo.). The simulator is ideal for this because it is portable and easily updated as bugs are found and corrected. Simulated calculators are given to application engineers and quality assurance engineers to help locate problems.

After much editing, the microcode is ready to be converted into hardware. This usually takes several weeks. In the meantime, the simulators continue to be used heavily and, in most cases, additional bugs are found.

When the completed integrated circuit chips return, the first working models of the calculator are constructed. Final testing is then initiated. Some problems can only be discovered at this stage because of the peculiarities of simulated operation. For example, this is the first time low battery indicators can be checked since the E-ROM simulator does not work on batteries.

At long last, the revised code is ready to be sent for final chips. Although no problems are anticipated at this stage, testing continues to assure traditional Hewlett-Packard reliability.

The tremendous emphasis on testing of the calculators is for practical reasons as well incorrect programs cannot be easily corrected as they can be on large computers. Once the code is set in hardware, changes are costly and inconvenient.

When the final chips are approved for production, the development cycle is complete. The design engineer has spent anywhere from six months to 13 months perfecting his building block design. And whether the end product is a high-powered financial calculator like the HP-92 or a versatile keystroke programmable like the HP-19C, it is first an expression of his personality and creativity.

The Calculator Reference by Rick Furr (rfurr@vcalc.net)

Back to The HP Page

Back to The Calculator Reference