Mit Google Docs veröffentlicht
RUSP Development Notes
Automatisch alle 5 Minuten aktualisiert

Rotary Un-Smartphone

DEVELOPMENT SUPPLEMENT

EDITED 5/22/23

Known issues (firmware)

Problem: When ISP not connected, debug console stops showing AT commands passings after a short time.

Workaround: Lorum ipsum

Planned fix: Lorum ipsum

Known issues (mechanical)

Problem: Dial return can stall.

Reason: Hole in reduction gear bearing pad is tight; Clock spring likely anemic. The Long Spacer and Mallet Clamp Collar should be 0.3mm taller.

Workaround: Trim the hole in the reduction gear bearing pad with a hobby knife. Add brass washers to the Long Spacer and Mallet Clamp Collar to act as spacers.

Planned fix: Increase height of spacers, increase depth of casing by .2-.4mm to accommodate, possibly increase thickness of Clock Spring.

Problem: Lambda and Fn button sometimes get stuck depressed with casing fully tightened.

Reason: Not entirely clear, but extraneous tab features on button assembly is possible, especially on Fn button. Additional complicating factor may be overall thickness of front casing.

Workaround: Manually trim Lambda and Fn buttons with hobby knife

Planned fix: New mold tooling for lower buttons. Increasing depth of casing also possible

Problem: Bell hammer assembly is annoying.

Reason: Hammer mount is combined with a critical spacer between the motherboard and daughterboard.

Workaround: May add spacers during assembly to help set Motherboard-Daughterboard separation.

Planned fix: New spacer design in progress.

Problem: Side window doesn’t fully seat in rear casing.

Reason: 

Workaround: It’s arguably good enough as is.

Planned fix:

Problem: Epoxy needed to glue magnets to finger stop for hall sensor.

Workaround: 

Planned fix: Next run of finger stops will include cutout for a single neodymium magnet. May still need a potting process, which would be done in-house.

Flashing firmware via the Arduino IDE

Note to self: remove FreeMono18pt7b.h from ./Firmware/RUSP/

  1. Download and install the Arduino Integrated Development Environment: https://support.arduino.cc/hc/en-us/articles/360019833020-Download-and-install-Arduino-IDE

NOTE: If you’re on Linux they have you download the AppImage package, but it’s generally available in the apt repositories and runs faster as a conventional binary.

  1. Install the MCUDude core.

        *For me, boards.txt is in ~/.arduino15/packages/MegaCore/hardware/avr/2.1.3.

In this, edit the 1280 running at 16MHz to have an upload speed of 11520, like so:

        >1280.menu.clock.16MHz_external.upload.speed=115200

  1. Install dependent libraries:
  1. GxEPD2. This is NOT the official fork from ZinggJM; I haphazardly added support for the 2.9” flexible ePaper display that the Rotary Un-Smartphone uses.

To add this, download it as a ZIP file (link here) and in the Arduino IDE go to Sketch>Include Library>Add .ZIP Library. Select the ZIP file and press OK. That’s it for that.

  1. Adafruit_GFX. In the Arduino IDE go to Tools>Manage Libraries, and, after waiting for the library list to load, use the search bar to find this. Click the “install” button next to the search result to install it. If it asks to install other related dependencies, say yes.

  1. EnableInterrupt. [... in progress]

Using the debugging console

Lorum ipsum

SIM ordering and account activation process for various carriers

Consumer Cellular:

Useful AT (Hayes) commands

        == Do in general ==

                1. Turn on verbose error reporting: AT+CMEE=2

                2. Turn on network registration URCs: AT+CREG=1

                3. Turn on call URCs: AT+UCALLSTAT=1

                4. First time only, enable autoconfiguration of the Max9860 Codec: AT+UEXTDCONF=0,1 and then reset with AT+CFUN=16

                        *Issueing +UEXTDCONF saves to NMV automatically, so this will be the default on every startup. If phsysically restarting, CFUN=16 not necessary.

           

        == Audio gain, volume, path ==

                * Read audio path settings: AT+USPM? //

                * Speaker gain: AT+CLVL  

                * Codec gain: AT+UVGC (Not for TOBY-R2)

                        =<component ID (0 for Maxim),<gain ID>,<gain value>

                * AT+UEXTDCONF is used for CODEC configuration

        == To Make a call ==

                * Optional, Enable voice call URCs: AT+UCALLSTAT=1 // 1,0=call active, 1,2=dialing, 1,3=ringing for remote party (i.e. alerting), 1,4=ringing, 1,5=waiting, 1,6=disconnected 1,7=connected,

                1. Set the service class to voice: AT+FCLASS=8 //0=data

                2. Make a call: ATD6319653409

        == To receive/answer a call ==

                1. Answer: ATA

                2. See data about incoming call (caller ID): AT+CLCC

        == To read an SMS ==

                1. Switch to text mode: AT+CMGF=1        //0=PDU mode

                2. List messages: AT+CMGL                //Garbled but some text comes through in text mode

                3. Read a message AT+CMGR=<n>                //<n> is message number

        

        == To check signal strength ==

                * AT+CESQ. AT+CSQ is old/not reccomended.

t

        == Network activity, registration, etc. ==

                * AT+CREG?        --check network registration status. First digit is network URC status (0=0ff, 1=on). For second, 0=not registered, not searching, 1=registered on home network, 2=not registered but searching, 3=registration denied, 4=unknown, 5=roaming, 6=SMS-only, home network, 7=SMS-only, roaming

                * To shut down, first issue AT+CPWROFF, then turn off power.

                * To deregister from network: AT+CFUN=0

                * To make sure the SIM isn't locked out and needing PIN entry, do "AT+CPIN?". A response of READY means it's all good. A response of SIM PIN means it needs to be set.

                * AT+GSN         --get the device IMEI

                * AT+CCID        --get SIM card ICCID

                * To check or confirm registration data and Radio Access Technology, do "AT+COPS?" The last digit indicates weather it's LTE, etc. LTE is 7.

                * Or maybe better, AT+URAT? 3=LTE and 7=LTE Cat M1

        == Misc ==

                * AT+CFUN=<function number>         --Sets the module function (e.g. 4 = airplane mode)

                * Ensure in normal mode (not airplane mode or such): AT+CFUN=1

        

        == Audio parameter tuning relevant to TOBY-R2 ==

                * AT+CLVL: MAIN VOLUME, called "Downlink speech level". Doesn't affect mic gain.

                * AT+USTN: Sidetone gain. In this context, the sidetone is the part of one's own speech audio that gets fed back through the speaker for self-perception.

                * AT+USGC: Speaker gain.

                        - To set: AT+USGC= <downlink_path_num>   <SPK_analog_gain>   <HS_analog_gain>   <scal_rec>   <Mix_afe>   <Gain_Out>

                        - For the TOBY-R2: <always 1>            <not used>          <not used>         <0-32767>    <0-32767>   <not used>

                        - To check: AT+USGC? //same output params as above but reported for each <downlink_path_num>

                        - Good value: AT+USGC=1,1,1,10000,16384,1

                * AT+UMGC: Mic gain.

                        - To set: AT+UMGC= <uplink_path_num>   <analog_gain>   <digital_gain>

                        - For the TOBY-R2: <always 1>          <not used>      <0-32767>

                        - To checl: AT+UMGC? //like +USGC

                        - Good value: AT+UMGC=1,1,32000... need for sensitivity. Mic problem?

                * AT+UI2S: Configure I2S parameters for audio codec.

                        - Defaults seem like the best and I can't seem to change it anyway

                * AT+UDBF: Downlink biquad filters. Looks complicated to optimize.

                * AT+UUBF: Uplink biquad filters. Same, looks complicated.

                * AT+UHFP: Spech enhancement system (SES): Complicated.

                * AT+UTGN: Tone generator (affected by <Scal_Rec> digital gain in AT+USGC)

                * AT+UPAR: Tone and MIDI melodies (affected by <Scal_Rec> digital gain in AT+USGC)

                * AT+CALA: Alarm tone (affected by <Scal_Rec> digital gain in AT+USGC)

                * AT+USPM: Audio path, but useless on TOBY-R2

                * AT+UDCONF: Selects audio codec for speech calls, but does not apply to VoLTE. So, who cares.

        

        == MAX9860 Codec configuratoin ==

                * First time ever used, issue autoconfigure command AT+UEXTDCONF=0,1 or no audio

        == Audio testing ==

                * On LARA, datasheets say to use use AT+UPAR=2,0,0 to play an audio test file from <audio_resource>, but after much hair-pulling I think <audio_resource> is in fact empty

                * Can use AT+UTGN=1000,1000,100,0 to play a test tone at 1000Hz (first parameter) for 1s (second parameter).

Radio Technology

LARA-R6 versions:

        

        Band frequencies:

              Band | Uplink (MHz)| Downlink (MHz)

                1  = 1920 – 1980 | 2110 – 2170

                2  = 1850 – 1910 | 1930 – 1990

                3  = 1710 – 1785 | 1805 – 1880  

                4  = 1710 – 1755 | 2110 – 2155

                5  = 824 – 849   | 869 – 894

                7  = 2500 – 2570 | 2620 – 2690

                8  = 880 – 915          | 925 – 960

                12 = 699 - 716         | 729 - 746

                17 = 704 – 716   | 734 – 746

                19 = 830 – 845          | 875 – 890

                20 = 832 – 862          | 791 – 821

                28 = 703 – 748          | 758 – 803

        Comments: Band 5 is global. Band 7 is everywhere except Japan. Bands 1, 3, and 5 are everywhere except N. America.

Edited 12/19/22